如何在Swift中声明和初始化一个数组

8

我正在尝试编写一个包含对象数组变量的Swift类。有没有更好的写法?

var myvar: Array<MyClass> = Array<MyClass>()

如果不加等号后面的内容,编译器会抱怨我的AppDelegate没有初始化程序。上述方法似乎有点冗长(虽然我猜它不比C#的等价物更简洁)。我只想知道是否有快捷方式。谢谢。

2个回答

16
To create an empty array or dictionary, use the initialiser syntax.

let emptyArray = [String]()
let emptyDictionary = [String: Float]()

let individualScores = [75, 43, 103, 87, 12]

let interestingNumbers = [
    "Prime": [2, 3, 5, 7, 11, 13],
    "Fibonacci": [1, 1, 2, 3, 5, 8],
    "Square": [1, 4, 9, 16, 25],
]

6
您可以使用空数组初始化变量:
var myvar: Array<MyClass> = []

或者使用自动类型推断:

var myvar = Array<MyClass>()

此外,您可以将Array<MyClass>写成[MyClass]

谢谢。现在我已经将它简化为:var myvar = MyClass - Rainier Wolfcastle
其中一个比另一个更好吗?如果是,为什么? - Rakesha Shastri
1
@RakeshaShastri: [MyClass] 优于 Array<MyClass>,请参阅 https://docs.swift.org/swift-book/LanguageGuide/CollectionTypes.html: “虽然这两种形式在功能上是相同的,但简写形式更受欢迎…”var myvar: [MyClass] = []var myvar = [MyClass]() 都可以,这只是个人偏好的问题。 - Martin R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接