编译器的响应是否有效?

时间:2014-06-04 03:48:31

标签: swift

以下代码调用错误。我在参考文献中找不到任何关于此的信息。 “=”运算符右侧缺少空格是一个错误。

let names =["Anna", "Alex", "Brian", "Jack"]

此语法的任何其他组合都会编译。根据我们现在所知道的Swift,任何人都知道这是否真的无效?

编辑:错误回复是:Prefix/postfix '=' is reserved

答案:这段摘录似乎回答了我的问题。我找不到最长的时间了:

  

运算符周围的空格用于确定是否为   运算符用作前缀运算符,后缀运算符或二进制运算符   运营商。以下规则总结了此行为:

     

如果操作员在两侧或周围都没有空白区域   一边,它被视为二元运算符。例如,+   a + b和a + b中的运算符被视为二元运算符。如果   运算符只在左侧有空格,它被视为a   前缀一元运算符。例如,++ b中的++运算符是   作为前缀一元运算符处理。如果运算符有空格   仅在右侧,它被视为后缀一元运算符。作为一个   例如,a ++ b中的++运算符被视为后缀一元   运营商。如果操作员左侧没有空格但是被跟随   立即用点(。),它被视为后缀一元运算符。   例如,++。b中的++运算符被视为后缀一元   运算符(a ++。b而不是++ .b)。

摘自:Apple Inc.“The Swift Programming Language。”iBooks。 https://itun.es/us/jEUH0.l

3 个答案:

答案 0 :(得分:13)

=之后添加空格。 (=[看起来太伤心,是运营商)。它' S可能看到=value作为使用(可能,但不执行)的前缀运算符。

Swift并不像C一样完全与空白无关......特别是,它使用空格来区分前缀和后缀运算符(因为C中的++i++是语法奇怪)。但是对于像Python这样的空白也不是非常严格。

答案 1 :(得分:2)

尝试在=[之间添加空格。

当等号直接位于括号前面时,编译器会假定您正在尝试对数组执行前缀操作。

答案 2 :(得分:2)

=[之间放置一个空格,

let names = ["Anna", "Alex", "Brian", "Jack"]

似乎=[是一个保留的运算符。