2017-09-03 84 views
1

我剛開始學習Swift,遵循Apple文檔。這裏是一個來自文檔的例子。字符串插值。打印字符串數組中的單個項目

let names = ["Anna", "Alex", "Brian", "Jack"] 
let count = names.count 
for i in 0..<count { 
    print("Person \(i + 1) is called \(names[i])") 
} 
// Person 1 is called Anna 
// Person 2 is called Alex 
// Person 3 is called Brian 
// Person 4 is called Jack 

我有打印語句查詢。我不明白\(names[i]), 有人可以解釋嗎? 當我們遍歷每個項目時,我也知道字符串插值也有一些(for in)循環。

,但我不明白\(names[i])

+0

表達'名單[I]'意味着**在列表中的第i個元素**。換句話說,該程序循環遍歷「名稱」的索引併爲每個索引打印一條消息,例如。 「人1叫做安娜」。 – SwiftsNamesake

+0

使用類似[enumerated](https://developer.apple.com/documentation/swift/array/1687832-enumerated)的東西通常是一個好主意,它給了你一系列(索引,項目)對。 – SwiftsNamesake

+1

在章節*集合類型*段落中描述*訪問和修改數組* – vadian

回答

1

當你把一些括號中是這樣的:名字[3],這意味着你想從3號位的名稱數組中的值。記住數組以0開頭,所以第三個位置將是數組列表中的第四個數字。

我意味着你想在那裏的數字改變每個循環。所以第一次循環運行時,它會像名稱[0]一樣運行,然後第二次運行它將像名稱[1]那樣運行,並且它將像這樣繼續,直到循環完成。

\ names [i]表示您將一個變量放在字符串中間。所以,如果你想打印您可以使用「這是一個字符串」,但如果你想在中間打印字符串變量你可以這樣做一個正常的字符串:

let variable = "long variable" 

Print("this is a string with a \(variable)") 

而且它會打印出:這是一個長變量

編輯的字符串:如果你要打印在單獨的線陣列的每個值有兩種方法可以做到這一點。

第一個是:

For item in names 
{ 
Print(item) 
} 

或者,你可以這樣做:

For i in 0..<names.count 
{ 
Print(names[i]) 
} 
+0

是的,我明白你說循環也是數組的索引。 只要清楚我一件事。 for i in 0 .. Tanzz

+0

@ martheli- 我意味着你想要爲每個循環改變那裏的數字。所以第一次循環運行時,它會像名稱[0]一樣運行,然後第二次運行它將像名稱[1]那樣運行,並且它將像這樣繼續,直到循環完成。 這個答案清除了我的困惑。(i)再次使用數組列表從0到3進行相同的循環。喜歡它與0 .. Tanzz

+0

@Tanzz我只是一個值的佔位符。所以當你循環訪問數組時,我改變了每個循環的值。所以首先它會是0,然後是1,然後是2,直到循環結束。我在上面的答案中增加了一些內容。 – Martheli