推 fishead1116: 你 f() 改的是B的xList的值啊 08/19 12:13
各位好:
我目前建立了兩個class,想要在classB內更改classA.xList的值
執行結果卻不如預期;我試著用classA內的函式搭配inout是可以的
請問我的寫法是哪裡有誤嗎?
class A {
var xList=[Bool](count:21 repeatedValue:false)
func X {
var b=B(xList:&xList) //把陣列傳入
b.f() //在這裡更改陣列內的值
}
class B {
var xList:[Bool]
init(inout inputList:[Bool]) {
self.xList=inputList //接收陣列
}
func f() {
xList[0]=true //想更改陣列的值,但是A.xList沒有變更
}
}
func setArray(inout inputList) {
inputList[0]=true //classA內的函式,可以正確更改A.xList
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.200.144
※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1439956507.A.C6A.html