簡體   English   中英

創建數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM