今天我和 Swift一起玩,一些奇怪的类型开始出现: let flip = Int(random()%2) //or arc4random(), or rand(); whatever you prefer 如果我输入翻转到Xcode 6(Beta 2),则自动完成弹出,并说flip是类型(Int)而不是Int
let flip = Int(random()%2) //or arc4random(), or rand(); whatever you prefer
如果我输入翻转到Xcode 6(Beta 2),则自动完成弹出,并说flip是类型(Int)而不是Int.
这很容易改变:
let flip : Int = Int(random()%2) let flop = random()%2
现在翻转和翻转是Int类型而不是(Int)
更多地使用它,这些“括号类型”是可预测的,你可以通过在变量赋值的任何部分添加额外的括号来引起它们.
let g = (5) //becomes type (Int)
你甚至可以在类型中引起额外的括号!
let h = ((5)) //becomes type ((Int)) let k = (((5))) //becomes type (((Int))) //etc.
所以,我的问题是:这些括号类型如(Int)和Int类型有什么区别?
部分是括号是有意义的.let g = (5)
…表示g是由一个Int,符号化(Int)组成的tuple.它是(5,6)的单元素版本,符号化(Int,Int).
一般来说,你需要对Swift中的括号非常小心;它们不能只用于任何旧地方.他们有意义.
但是,部分原因还在于代码完成机制存在问题.如果您具有可重现的案例,请向Apple提交报告.