str.startIndex和str.endIndex是可以用隨便的String變量定義的
比如,隨便定義一個(gè)字符串
var str1 = "it's useless"
var str2 = "This is a string test"
let startIndex = str1.startIndex
print(str2[startIndex])
輸出的是"T",說(shuō)明用str1定義的startIndex一樣可以被其他字符串用,這是不是有點(diǎn)不夠嚴(yán)謹(jǐn)?
2016-04-13
非常好的問(wèn)題!強(qiáng)烈建議慕課網(wǎng)可以給問(wèn)題點(diǎn)贊!
目前,String.Index類型完全可以當(dāng)做一個(gè)整型來(lái)看。封裝成這個(gè)新的類型是為了保證能夠在字符串中通行處理Unicode字符的相關(guān)的問(wèn)題。在這個(gè)意義下,startIndex就是一個(gè)0,可以被使用在任何其他字符串中。
但是必須承認(rèn),這是不安全的,同時(shí)也失去了str1.startIndex這樣聲明的意義!也就是說(shuō)str1.startIndex不能充當(dāng)str1的迭代器!
我之前沒(méi)有嘗試這個(gè)問(wèn)題,現(xiàn)在看來(lái),這個(gè)地方確實(shí)不夠嚴(yán)謹(jǐn)。不過(guò)swift還在不斷進(jìn)化??赡芤院?,這個(gè)問(wèn)題會(huì)被修改??梢躁P(guān)注蘋(píng)果官方的這個(gè)repo來(lái)了解swift的進(jìn)一步進(jìn)化方向:https://github.com/apple/swift-evolution
同時(shí),也希望關(guān)注這個(gè)課程的github:https://github.com/liuyubobobo/Play-with-Swift-2,多提寶貴意見(jiàn)!謝謝你!
2016-04-12
startIndex是一個(gè)由str1賦值的Index類型的常量,被str2調(diào)用沒(méi)什么問(wèn)題吧...