[英]Creating arrays
我將學習Swift 2,並進入有關arrays
的章節。 在那里,我發現以下兩項功能(至少可以看到)是相同的:
第一:
var shoppinglist = [String](arrayLiteral: "Eggs", "Milk");
第二個:
var shoppinglist2: [String] = ["Eggs", "Milk"];
這兩者之間到底有什么區別,或者根本沒有區別? 我應該選哪一個?
沒有功能上的差異,但您應該選擇第二個表達式。
語法[String]
只是Array<String>
的簡寫,表示您正在描述專用於保存String
值的通用Array
類型。
但是,使用速記語法只是為了描述類型,而不是像在第一個示例中那樣實際調用初始化程序,這是更常見且更易讀的。 另外,也不需要調用arrayLiteral
參數的初始化程序。 該參數的關鍵是允許您使用文字來初始化數組,就像在第二個示例中所做的那樣。
您的第二個例子很好。
另一個選擇就是
var shoppinglist3 = ["Eggs", "Milk"]
這依賴於類型推斷。
而且您不需要分號
它只是語法上的糖,可以使您的代碼不那么冗長,因此,除非出於某種原因不清楚,否則通常應該選擇不那么冗長的代碼。 您也可以刪除類型注釋,因為它是多余的,因為可以從表達式中推斷出類型。
所以理想地:
var shoppinglist = ["Eggs", "Milk"]
第二個比較常見,在這種情況下,您還可以排除:[String],因為它是從右側的值推斷出來的。 它們具有不同的語法,但是對相同的事物求值。 第一個通常在創建空數組或重復數組時使用,如下所示:
var empties = [Float]()
var doubles = [Double](count: 15, repeatedValue: 1.0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.