Arrays 在swift中创建不可变空数组的利弊

Arrays 在swift中创建不可变空数组的利弊,arrays,swift,immutablearray,Arrays,Swift,Immutablearray,我不熟悉Swift编程语言。我正在苹果的网站上学习。我遇到以下代码行: let emptyArray = [String]() 我问了另一个与此相关但不完全相关的问题。我想知道在Swift中创建一个空的不可变数组的利弊。由于上面的代码行包含let关键字,它清楚地表明将在内存中创建字符串类型的空数组。我感兴趣的是为什么有人会需要它?有什么用吗?否则,苹果不会允许这样做。所以我想知道一个例子的利弊 注意:我在Google和StackOverflow中搜索了我的查询,但没有找到我要查找的确切原因。所

我不熟悉Swift编程语言。我正在苹果的网站上学习。我遇到以下代码行:

let emptyArray = [String]()
我问了另一个与此相关但不完全相关的问题。我想知道在Swift中创建一个空的不可变数组的利弊。由于上面的代码行包含let关键字,它清楚地表明将在内存中创建字符串类型的空数组。我感兴趣的是为什么有人会需要它?有什么用吗?否则,苹果不会允许这样做。所以我想知道一个例子的利弊

注意:我在Google和StackOverflow中搜索了我的查询,但没有找到我要查找的确切原因。所以,在你否决这个问题之前,请想一想

编辑:以前提出的问题根本不能解决我当前的问题。通过这个问题,我想知道在什么情况下我应该这样做。为什么苹果提供了这样的功能,让我们可以创建一个空的不可变数组。因为空数组将没有值,并且在创建它之后,您将无法将其值编辑为空,也无法向其中添加或删除任何项。那么为什么compile允许写这样的行呢?希望我现在明白了

我感兴趣的是为什么有人会需要它

也许没有人需要它。仅仅因为它可以在Swift中实现,并不意味着任何人使用它或发现它有用

有什么用吗

我想我们可以想出一些人为的例子,但如果你需要的话,就使用它。如果你发现它没用,好吧,不要用它

否则苹果就不会允许这样做


我想你读到的比现在更多。苹果不考虑每一个可能的代码行,而不是在SWIFT中写入,然后允许或不允许。您可以这样做,这是您可以在创建变量时初始化变量这一事实的自然延伸。如果用
var
声明它,那么它是可变的,如果用
let
声明它,那么它是不可变的。苹果有什么理由不允许创建不可变的空数组?因为他们想不出它的用途?这真的会让一个程序员感到沮丧,因为他想出了一个使用它的方法。

想象一个函数,它创建了一个“Person”对象,并将一组电话号码作为参数。为什么不允许传递空数组?或者,当您避免可变状态时,想象一个“append”函数,它不修改原始数组,而是从原始数组+附加值创建一个新数组。