Swift文字列を整数値でインデックスできないことを知りました。私はそれを思い出し、私はそのルールを使用します。しかし、私はそれの背後にあるメカニックを完全に理解したことはありません。文字列を整数値でインデックスできない理由
特定の位置にある文字を決定するために、あなたは各ユニコードを反復しなければならないので、
「異なる文字は、格納するメモリの異なる量を必要とすることができ、次のように公式文書からの説明がありますスワイプの文字列を整数値でインデックス化することはできません。 "
私はそれを何度も読んだことがありますが、まだそれほど意味がありません。なぜSwift Stringを整数値で索引付けできないのか誰かが私に説明してくれますか?
ありがとうございました
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/StringsAndCharacters.html - これはあなたが話しているトピックです。私にとっては、このトピックを最初から最後まで読むときよりもはっきりと説明するのはかなり難しいでしょう。 –
簡単なヒントでは完全な説明ではありません:スウィフト文字列はユニコードを尊重します。例えば、いくつかの絵文字は「合成」文字ですが、1文字として表示されますが、実際には最大4文字まで使用できます。それを見ると、表示されたときに複数の文字が1つに合成されます。そのため、Swiftの文字列の文字の「インデックス」に頼ることができません。 – Moritz
@Moritz、これは、整数索引を実装することができない理由を説明しています。なぜなら、整数索引を対応するUnicodeコードポイントにマッピングして実装することはできませんが、myString [8] 'myString'の7番目の正規シンボルです。 あなたのヒントは絶対に正しいですが、以上の理由で私と他の人たちも質問を探します。 –