swift中空格的规则是什么

时间:2015-07-08 19:16:06

标签: swift swift-playground

我在快捷的游乐场练习,我无法弄清楚为什么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

即便如此":"有时会产生一些空间问题。

我认为空格应该对代码完全没有影响。它通常只是为了程序员的利益。它只是让代码更具可读性。什么是阅读所有关于空间的快速规则的最佳资源。

1 个答案:

答案 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