数组 – Swift中的可选数组与空数组
我在Swift中有一个简单的Person类,看起来像这样:
class Person { var name = "John Doe" var age = 18 var children = [Person]? init function goes here,but does not initialize children array } 而不是声明孩子是一个可选数组,我可以简单地声明它,并将其初始化为一个空数组,如下所示: var children = [Person]() 我试图决定哪种方法更好。将数组声明为可选数组意味着它不会占用任何内存,而一个空数组至少有一些分配给它的内存是正确的?所以使用可选数组意味着至少会有一些内存保存。我想我的第一个问题是:这里真的有任何实际的记忆保存,还是我对这个错误的假设? 另一方面,如果它是可选的,那么每次尝试使用它时,我将不得不检查它是否在添加或删除对象之前是否为零。所以在那里会有一些效率的损失(但是我没想到)。 我喜欢可选的方法。不是每个人都会有孩子,所以为什么不让孩子一直没有,直到人决定安抚和抚养家庭? 无论如何,我想知道一种方法还有其他具体的优点或缺点。这是一个一个又一个的设计问题。
在空阵列或可选选项之间进行选择的能力使我们能够从语义角度应用更好地描述数据的能力。
我会选: >一个空数组,如果列表可以是空的,但它是一个暂时的状态,最终它应该至少有一个元素。非可选使清楚数组不应为空 让我举一些例子: >采购订单与主要和细节(每个产品一个细节):采购订单可以有0个细节,但这是一个暂时的状态,因为没有意义的采购订单与0产品 请注意,我的意见只是使代码更清楚和自我解释 – 我认为在选择一个选项或其他选项方面的性能,内存使用等方面没有任何显着的差异。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |