[String]与[(String)]之间有什么区别?

And*_*rej 3 swift

Swift中[String]和[(String)]之间有什么区别?我让他们使用let arr1 : [String]let arr2 = [String]().

Air*_*ity 9

应该没有区别 - 如果你看到的话,这是Xcode或Swift中的某个小故障[(String)].理论上,所有变量都是单元素元组 - 这就是为什么每个变量都有一个.0属性:

let s = "hello"
print(s.0)
Run Code Online (Sandbox Code Playgroud)

但在实践中,这应该得到归一化了,让你永远也看不到(OneThing),只有永远OneThing.


Rik*_*son 8

[String]是一个字符串数组,而[(String)]是一个包含1个字符串的元组数组.

let arr1 = [("test")]
arr1[0].0 // contains "test"

let arr2 = ["test"]
arr2[0] // contains "test"
Run Code Online (Sandbox Code Playgroud)

一个更有用的元组数组可能是这样的:

let arr1: [(id: Int, name: String)] = [(12, "Fred"), (43, "Bob")]
arr1[0].name // contains "Fred"
Run Code Online (Sandbox Code Playgroud)

  • 这意味着`[(String)]`和`[String]`有些不同,但它们不是(或不应该).注意,`arr1 [0]`和`arr2 [0] .0`也都返回"test". (3认同)
  • 每个类型都实现为只包含一个值的元组,Airspeed Velocity的答案肯定是正确的 (2认同)