亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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一樣可以被其他字符串用,這是不是有點不夠嚴謹?


正在回答

2 回答

非常好的問題!強烈建議慕課網可以給問題點贊!

目前,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,多提寶貴意見!謝謝你!

1 回復 有任何疑惑可以回復我~

startIndex是一個由str1賦值的Index類型的常量,被str2調用沒什么問題吧...

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

str.startIndex和str.endIndex是可以用隨便的String變量定義的

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號