我正在使用类似这样在for-in循环中的数组上调用map()
函数:
let numbers = [2, 4, 6, 8, 10]
for doubled in numbers.map { $0 * 2 } // compile error
{
print(doubled)
}
出现编译错误:
未解决的标识符使用“doubled”
但是,如果我为map()
函数添加括号,则可以正常工作。例如:
for doubled in numbers.map ({ $0 * 2 })
{
print(doubled)
}
我的问题是,为什么编译器不能区分尾随函数和循环的代码块,假设这是导致问题的原因?