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