gpt4 book ai didi

swift - 如何在 Swift 中正确打印 block 参数?

转载 作者:可可西里 更新时间:2023-11-01 02:20:05 27 4
gpt4 key购买 nike

当我想打印作为输入传递给函数的 block 中的参数值时,我在 Swift 1.2 和 2.0 的 Playgrounds 中看到以下差异。任何有助于理解正在发生的事情的帮助将不胜感激!

func blockSample(myInput: String, myOutput: (answer: String) -> ()) {
myOutput(answer: myInput)
}

blockSample("testthis") { (answer) -> () in
print(answer) // This should print "testthis" but it doesn't
}

blockSample("testthis") { (answer) -> () in
print("test") // print something before the next line
print(answer) // this works. prints "testthis"
}

blockSample("testthis") { (answer) -> () in
let printedAnswer = answer
print(answer) // this works. prints "testthis". Note that I am printing answer and not printedAnswer
}

最佳答案

与其他示例相反,您的第一个示例确实不会在 Playground 的实时面板中打印

但是对于 Xcode 7 Playgrounds,如果您打开菜单:

View / Debug Area / Show Debug Area

您将在控制台中看到所有内容均已正确打印。

在 Xcode 6 Playgrounds 中,您可以通过显示 Assistant Editor 来实现相同的目的:

View / Assistant Editor / Show Assistant Editor

此外,请记住,在 Playgrounds 中,您可以通过在单独的行中声明您的变量来强制在实时面板中显示一个值:

blockSample("testthis") { (answer) -> () in
answer // this will force the live display of the value for 'answer'
print(answer)
}

关于swift - 如何在 Swift 中正确打印 block 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31323681/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com