Ios Swift中的分业经营

Ios Swift中的分业经营,ios,swift,Ios,Swift,为什么我总是在这件事上出错 var rotation:Float= Double(arc4random_uniform(50))/ Double(100-0.2) 其实我也试过这个: var rotation:Double= Double(arc4random_uniform(50))/ Double(100-0.2) 谢谢你斯威夫特。除法“/”是一个二进制运算符 重要的规则是: 如果运算符两边都有空格或两边都没有空格 另一方面,它被视为二进制运算符。例如+ a+b和a+b中的运算符被

为什么我总是在这件事上出错

 var rotation:Float= Double(arc4random_uniform(50))/ Double(100-0.2)
其实我也试过这个:

 var rotation:Double= Double(arc4random_uniform(50))/ Double(100-0.2)
谢谢你

斯威夫特。除法“/”是一个二进制运算符

重要的规则是:

  • 如果运算符两边都有空格或两边都没有空格 另一方面,它被视为二进制运算符。例如+ a+b和a+b中的运算符被视为二进制运算符
  • 如果运算符仅在左侧有空格,则将其视为 前缀一元运算符。例如,a++b中的++运算符是 作为前缀一元运算符处理
  • 如果运算符上有空格 仅在右侧,它被视为后缀一元运算符。作为 例如,a++b中的++运算符被视为后缀一元 接线员
这意味着您需要在
/
前面添加一个空格,或删除后面的空格,以指示它是二进制运算符:

var rotation = Double(arc4random_uniform(50)) / (100.0 - 0.2)
如果希望
rotation
成为浮点,则应使用它而不是Double:

var rotation = Float(arc4random_uniform(50)) / (100.0 - 0.2)

无需显式指定类型,因为它将从您分配给的值推断出来。此外,您不需要显式地将文本构造为特定类型,因为这些文本将符合您使用它们的类型。

该死,我花了一个小时来创建一个空格!。。。。这太愚蠢了:/无论如何,谢谢你的回答……事实上,它不是解析器中的错误。这是语言的设计。操作符要么没有空格,要么两侧都有空格,但一侧没有空格。阅读Swift语言手册,特别是关于用户定义运算符的部分。@gnasher729有趣,我没有意识到,你有任何参考资料的链接吗?@gnasher729没关系,我找到了它并将其添加到我的答案中。谢谢你指出这一点