2016-07-15 10 views
1

私はSwift 3の初心者で、文字列インデックスを使用して文字を取得するための1つの例に出くわしました。私はスイフト3をインストールしていないが、私は説明とは異なる1つのことを疑う。私は知らない、それはバグ、間違いを書くか、何か。以下は、「スウィフト・プログラミング言語(Swift 3 Beta)」の166ページの例です。文字列インデックスSwift 3

let greeting = "Guten Tag!" 

greeting[greeting.startIndex] //Prints G according to text. Fine according to definition. 

greeting[greeting.index(before:greeting.endIndex)] //Prints ! according to text. Now if you look at greeting String, the character before endIndex is g. It must print g according to definition. 

greeting[greeting.index(after:greeting.startIndex)] //Prints u according to text and is right according to definition also. 

誰かがこの動作を説明できますか?

答えて

1

「文字列インデックス」セクションでdocumentationから:

endIndexのプロパティは後に文字列の最後の文字の位置です。その結果、endIndexプロパティは文字列の添字の有効な引数ではありません。

これはendIndexはかなり文字列の長さと最後の文字のように実際にあることを意味し、インデックスendIndex - 1です。

出力が正しいです。また、同じ「Guten Tag!」そのドキュメンテーションページに例が示されています。

+0

ありがとうございます。 :) – WasimSafdar

+0

私は、7分後になります。 :) – WasimSafdar

関連する問題