[Swith]なぜSubstringがあるのでしょうか?

1265 ワード


🗒 Substringとは?


Stringタイプをメソッドに変換すると、不思議なことにreturnタイプはStringではなくSubstringです.
アップルの公式文書によると
SubstringタイプはStringタイプとほぼ同じ方法を持っているのでStringのように使用できる.
@frozen struct Substring

🧐 Substringが存在する理由


上によれば、StringとSubstringはあまり変わらない.
それはなぜですか.Substringタイプは別に作られますか?(お手数ですが…)
これがパフォーマンスの最適化です.
SubstringタイプはStringの変換時に発生します.
したがって、記憶領域を節約するために、変換前のStringタイプのアドレスを参照して値を取得することができる.

(アップルランドガイドの画像)
上の写真を見ると、すぐに理解できます.
値を参照して、タイプをStringに変換すると、ストレージスペースに格納されます.
StringProtocol
StringとSubstringは、Stringプロトコルを遵守しています.
つまり.
StringProtocolタイプは、文字列の処理方法を作成するときにパラメータとして使用します.
StringもSubstringも受信できることを意味します
アップルは本当にメモリを真剣に管理していますね.
コメントドキュメント
サブスクリプトの正式なドキュメント
蘭貴ガイドのサブスクリプト