语句不能以 for 循环上的闭包语句开头
Posted
技术标签:
【中文标题】语句不能以 for 循环上的闭包语句开头【英文标题】:statement cannot begin with a closure statement on for loop 【发布时间】:2015-09-28 05:41:59 【问题描述】:我在 Xcode Playground 中遇到了奇怪的问题,我不知道在 Xcode 7 之前我是否也遇到过同样的问题。
您可以在 for 循环条件部分看到左箭头(小于)位置,第 1 和第 3 句语法有问题,第 2 和第 4 句语法正确...
我正在使用 Xcode 7,同样的问题出现在 Project(不是 Playground)上。
【问题讨论】:
【参考方案1】:Swift 初学者的错误:运算符周围的空间很重要。这是
a<b or a < b but not a <b or a< b.
【讨论】:
之前我也遇到过同样的问题,后来我才知道和@gnasher一样 如果运算符周围的空间很大,那么 a 阅读 Swift 书籍。完全没有空格或两边都有空格 = 二元运算符。左侧的空格 = 前缀一元运算符。右侧空格 = 后缀一元运算符。【参考方案2】:解决运算符周围空间问题的一个方法是使用“更快捷”的循环方式:
for item in array
// do something with item
与索引相同:
for (index, item) in array.enumerate()
// do something with index and item
还有map
可以从另一个数组中获取修改后的数组:
let result = array.map item in
// apply transformation to `item`
在 Swift 中不再需要继续使用旧的 for var i = 0; ...
机制。
【讨论】:
【参考方案3】:这个帖子似乎表明这是一个错误。 https://forums.developer.apple.com/thread/6775
【讨论】:
这个问题不仅在操场上也出现在 Project 上 不幸的是。我不是这方面的专家。我只是想帮你找到一些其他的答案。我猜你的项目可能配置错误?以上是关于语句不能以 for 循环上的闭包语句开头的主要内容,如果未能解决你的问题,请参考以下文章
利用闭包解决for循环里onclick事件不能捕捉实时i值问题