gpt4 book ai didi

types - 括号内的 Swift 类型

转载 作者:搜寻专家 更新时间:2023-10-31 22:03:55 26 4
gpt4 key购买 nike

我今天在玩 Swift,一些奇怪的类型开始出现:

let flip = Int(random()%2)  //or arc4random(), or rand(); whatever you prefer

如果我在 Xcode 6 (Beta 2) 中输入 flip,自动完成会弹出,并显示 flip 的类型是 (Int) 而不是 Int

这很容易改变:

let flip : Int = Int(random()%2)
let flop = random()%2

现在 flip 和 flop 的类型是 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 是一个 tuple由一个 Int 组成,符号化为 (Int)。它是 (5,6) 的单元素版本,符号化为 (Int,Int)

一般来说,在 Swift 中你需要非常小心括号;他们不能只是在任何旧地方使用。它们有意义。

但是,代码完成机制也有部分问题。如果您有可重现的案例,请向 Apple 提交报告。

关于types - 括号内的 Swift 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24422108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com