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