在以下代码中使用 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() 范围内的指针???