以下代码调用错误。我在参考文献中找不到任何关于此的信息。 “=”运算符右侧缺少空格是一个错误。
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
答案 0 :(得分:13)
在=
之后添加空格。 (=[
看起来太伤心,是运营商)。它' S可能看到=value
作为使用(可能,但不执行)的前缀运算符。
Swift并不像C一样完全与空白无关......特别是,它使用空格来区分前缀和后缀运算符(因为C中的++i++
是语法奇怪)。但是对于像Python这样的空白也不是非常严格。
答案 1 :(得分:2)
尝试在=
和[
之间添加空格。
当等号直接位于括号前面时,编译器会假定您正在尝试对数组执行前缀操作。
答案 2 :(得分:2)
在=
和[
之间放置一个空格,
let names = ["Anna", "Alex", "Brian", "Jack"]
似乎=[
是一个保留的运算符。