以下代码调用错误.我在参考文献中找不到任何关于此的信息.'='运算符右侧缺少空格是一个错误.
let names =["Anna", "Alex", "Brian", "Jack"]
此语法的任何其他组合都会编译.根据我们现在所知道的Swift,任何人都知道这是否真的是无效的语法?
编辑:错误响应是: Prefix/postfix '=' is reserved
答案:这段摘录似乎回答了我的问题.我在最长的时间内找不到它:
运算符周围的空格用于确定运算符是用作前缀运算符,后缀运算符还是二元运算符.以下规则总结了此行为:
如果运算符在两侧或两侧都有空格,则将其视为二元运算符.例如,a + b和a + b中的+运算符被视为二元运算符.如果运算符仅在左侧有空格,则将其视为前缀一元运算符.例如,a ++ b中的++运算符被视为前缀一元运算符.如果运算符仅在右侧有空格,则将其视为后缀一元运算符.例如,a ++ b中的++运算符被视为后缀一元运算符.如果运算符左侧没有空格但后面紧跟一个点(.),则将其视为后缀一元运算符.例如,++.b中的++运算符被视为后缀一元运算符(++.b而不是++ .b).
摘录自:Apple Inc."The Swift Programming Language."iBooks.https://itun.es/us/jEUH0.l
之后添加一个空格=
.(=[
看起来太悲伤了,不能成为一个运营商.)它可能=value
看作是(可能的,但未实现的)前缀运算符的使用.
Swift并不像C一样完全与空白无关......特别是,它使用空格来区分前缀和后缀运算符(因为++i++
在C中是语法奇怪).但是对于像Python这样的空白也不是非常严格.