创建常量(let)空数组对象有什么用途?

3
在苹果发布的Swift PDF文件中,我看到了这段代码。
要创建一个空的数组或字典,请使用初始化语法。
let emptyArray = [String]()
let emptyDictionary = [String: Float]()

创建一个带空数组的let(constant)对象有什么用处呢?在下一行中我们无法向其中插入任何值?


我个人认为这应该被视为文档中的一个小错误。如果那些示例使用变量而不是常量,那将更有意义。 - Matt Gibson
3个回答

2

在教授Objective-C时,他们通常会从以下方面开始教学:

NSArray *arrayObj = [[NSArray alloc] init] 

如果我们像这样声明,那么在初始化后我们将无法添加对象。
同样,他们教我们如何初始化数组或字典对象。

另一个区别是,如果我们分配一个空数组,那么我们可以将另一个数组分配给它。

let 不允许您将另一个数组分配给它。

let emptyArray = [String]()
let/var filledArray = ["stack", "overflow"]

emptyArray = filledArray  //  will give you an error 

0

用途不大,但是值可以复制:

let emptyDictionary = [String: Float]()
var otherDictionary = emptyDictionary
otherDictionary["a"] = 0.5

0

属性声明将它们设置为默认值,但您实际上可以在init中将其更改为其他值。这仅适用于类属性,而不适用于内联属性。

以下是一个类作用域中的示例,其中let属性可以具有默认值但可以更改:

class Whatever {

    let testArray = [Int]()

    init() {
        testArray = [0,1,2]
    }
}

你能举个例子吗? - GouthamDevaraju

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