下面的代码调用一个错误。我在参考资料中找不到有关这方面的任何资料。'=‘操作符右侧缺少空格是一个错误。
let names =["Anna", "Alex", "Brian", "Jack"]此语法的任何其他组合都会编译。根据我们现在对Swift的了解,有人知道这是否是真正无效的语法吗?
编辑:错误响应是:Prefix/postfix '=' is reserved
答:这段节选似乎回答了我的问题。我只是很久没找到它:
操作符周围的空格用于确定操作符是用作前缀运算符、后缀运算符还是二进制运算符。这种行为概括为以下规则: 如果运算符两边或两边都有空格,则将其视为二进制运算符。例如,a+b和a+b中的+运算符被视为二进制运算符。如果运算符的左边只有空格,则将其视为前缀一元运算符。例如,++运算符在++b中被视为前缀一元运算符。如果运算符的右侧只有空格,则将其视为后缀一元运算符。例如,++ b中的a++运算符被视为后缀一元运算符。如果运算符左边没有空格,但后面紧跟着一个点(.),则将其视为后缀一元运算符。例如,++操作符在a++.b中被视为后缀一元运算符(a++ )。B而不是++ .b)。
摘录自:苹果公司。“斯威夫特编程语言”iBooks。https://itun.es/us/jEUH0.l
发布于 2014-06-04 04:05:21
在=之后添加一个空格。(=[看起来太悲伤了,不适合做操作员。)它可能将=value看作是对前缀操作符(可能的,但不是实现的)的一种使用。
斯威夫特并不像C那样完全不懂空格.特别是,它使用空白来区分前缀和后缀操作符(因为C中的++i++是语法上的一个奇怪现象)。但是,对Python这样的空格也没有过分严格的要求。
发布于 2014-06-04 03:50:31
尝试在=和[之间添加一个空格。
当相等号位于括号的正前方时,编译器假定您试图对数组执行前缀操作。
发布于 2014-06-04 03:52:06
在=和[之间放一个空格,
let names = ["Anna", "Alex", "Brian", "Jack"]=[似乎是一个保留运算符。
https://stackoverflow.com/questions/24028666
复制相似问题