我在快捷的游乐场练习,我无法弄清楚为什么swift对程序员应该提供空间的地方过于具体,哪些不是。我在很多网站和聊天室都问了这个问题,但没有得到任何答案。
var j: Int = 34 // Right
var j:Int=23 //Wrong
另外,在课堂上
self.variable-= 5 //Wrong. Error: Consecutive statements must be followed by ;
self.variable-=5 // Right
self.variable -= 5 // Right
即便如此":"有时会产生一些空间问题。
我认为空格应该对代码完全没有影响。它通常只是为了程序员的利益。它只是让代码更具可读性。什么是阅读所有关于空间的快速规则的最佳资源。
答案 0 :(得分:14)
可以在swift docs
找到问题第二部分的答案运算符周围的空格用于确定运算符是用作前缀运算符,后缀运算符还是二元运算符。以下规则总结了此行为:
如果操作员在两侧或两侧都有空格,则将其视为二元运算符。例如,a + b和a + b中的+运算符被视为二元运算符。
如果运算符仅在左侧有空格,则将其视为前缀一元运算符。例如,++ b中的++运算符被视为前缀一元运算符。
如果运算符仅在右侧有空格,则将其视为后缀一元运算符。例如,a ++ b中的++运算符被视为后缀一元运算符。
如果运算符左侧没有空格但后面紧跟一个点(。),则将其视为后缀一元运算符。例如,++。b中的++运算符被视为后缀一元运算符(++ .b而不是++ .b)。
等......(阅读文档了解更多信息)
至于你问题的第一部分,我没有看到任何一种声明变量的问题。
var j: Int = 34
var j:Int=23
提供代码的唯一问题是您在同一范围内声明了两次j。尝试将其中一个更改为x或y或其他内容。
如果你想知道
var j:Int =10
或
var j:Int= 10
看看上面的规则。 =是一个运算符,所以如果你要做其中任何一个,它将被视为前缀或后缀,你会得到前缀/后缀=保留的错误
由于存在诸如一元加和一元减运算符之类的运算符,这些规则很重要。编译器需要能够区分二进制加和一元加运算符。 List of operators