【发布时间】:2016-11-12 21:15:04
【问题描述】:
在下面的代码中使用 swift inout 参数感觉有点失落:
var shouldContinue: Bool = true
func doSomeWork1(shouldContinue: inout Bool)
{
while shouldContinue
{
// ERROR: the compiler wants: doSomeWork2(shouldContinue: &shouldContinue)
doSomeWork2(shouldContinue: shouldContinue)
}
}
func doSomeWork2(shouldContinue: inout Bool)
{
while shouldContinue
{
}
}
为什么编译器需要 doSomeWork2(shouldContinue: &shouldContinue) 而不是 the compiler wants: doSomeWork2(shouldContinue: shouldContinue) ? shouldContinue 不是已经是 doSomeWork1() 范围内的指针吗???
【问题讨论】: