言語データ構造[文字列]を行きます

簡単な紹介

  文字列文字列は、典型的には、人間可読テキストデータを格納するために使用され、バイトの配列を変更することができません。配列が異なっていると、文字列の要素を変更することはできません、ある読み取り専用のバイト配列各ストリングは、固定であるが、文字列型文字列の長さの一部ではないが。ソースコードは、移動中に現れるソース文字列リテラルで、その結果、移動UTF8エンコードに必要とされるため、一般的にUTF8エンコードされています。

  基礎となるデータに対応する言語の文字列を移動しますバイトの配列で、読み取り専用の文字列は、プログラムのバイト配列の基礎となる要素への変更を禁止属性。ストリング割り当ては、単に基礎となるデータのコピー引き起こすことなく、データ及び対応するアドレスの長さをコピー(キー!

 

基本構造

中下部の言語の文字列を行くreflect.StringHeaderの定義:

型StringHeader構造体{ 
    データuintptr 
    レンINT 
}

ストリング構造は、2つの情報から構成されていますバイトの基本配列に第1ストリング点、第2バイトは、文字列の長さです。実際には、構造が文字列で、文字列はそう割り当てがあるreflect.StringHeader複製構造、およびバイトの根底にある配列のコピーは含まれません。文字列の配列は、構造体の配列とみなすことができます。

私たちは「こんにちは、世界は」自身がメモリ構造を対応する文字列を見ることができます:

分析は、「こんにちは、世界」見つけることができ、基礎となるデータの文字列配列はまったく同じです。

データ:= [...]バイト{ 'H'、 'E'、 'L'、 'L'、 'O'、 ''、'、 'W'、 'O'、 'R'、' L」、 'D'、}

 

  

 

 

おすすめ

転載: www.cnblogs.com/lianzhilei/p/11521468.html