我在尝试使用Swift中的新异步/等待模式时遇到了一些让我感到困惑的事情。
struct ContentView: View {
var body: some View {
Text("Hello World!")
.task {
var num = 1
Task {
print(num)
}
Task {
print(num)
}
}
}
func printScore() async {
var score = 1
Task { print(score) }
Task { print(score) }
}
}
有人能否解释一下为什么编译器只在 printScore()
函数中捕获的 var
抱怨,而在使用 ContentView
结构体的 body
计算属性上使用相同的方法时却没有任何抱怨(即第14-24行)?这是我想出来的例子,对编译器的行为感到困惑。我还将编译器设置的“Strict Concurrency Checking”构建设置更改为“Complete”,但仍然看不到编译器抱怨。
Task
,任何一个都不需要。你只需要.task
。 - lorem ipsumbody
计算属性内部没有编译器错误呢? - AKIL KUMAR