作者:手机用户2702932415_836 | 来源:互联网 | 2023-05-24 12:29
我已经谷歌搜索了一段时间,每个教程都教我创建一个数组,你只需要做以下事情:
var persOns= [String]
但我正在从快速代码转向iOS开发学习材料,现在到处都是
var persOns= [String]()
为什么我们最后需要那些括号?
1> mc01..:
看起来你混淆了两个概念:变量声明和变量赋值.
要在Swift中声明一个空数组,您必须明确说明数组可以容纳的类型.你可以用长手定义来做到这一点:
var persons: Array
或简写语法(首选):
var persons: [String]
注意使用冒号":"而不是等于"=".
这两个都在说"我宣称存在一个名为'people'的变量(不是常量),它将是一个充满字符串的可变数组.但是现在它还是未定义的."
在Obj-C中,你可以将任何类型的Object放入NSArray中,这意味着你无法确定你将从中获得什么.以这种方式声明Array内容是Swift的Type安全功能之一.您可以确信persons
只会包含String
实例.
要分配一个值的变量,这意味着它不只是有一个定义,但也有在内存中分配给它一个有效的对象,你必须真正初始化数组:
var persOns= [String]()
这实际上是初始化将保存某个Type的空数组的简写方法,而不将任何参数传递给init:方法.在此之后,persons
实际上有一个值,这是一个完全空的数组,只允许包含字符串.
或者,Swift的Array Type有一个第二个初始化器,可以让你传递参数:
init(count: Int, repeatedValue: T)
您可以使用它来创建一个具有设定长度和初始值的数组:
let immutableBobsArray = Array(count: 3, repeatedValue: "Bob")
println(\(immutableBobsArray)) \\ ["Bob", "Bob", "Bob"]
请参阅Apple的Swift编程指南中的"集合类型",以及Swift标准库中的Array条目