4

stringGo の a は、char*C の a (または a char[]) または C++ のクラスstringのようなものですか?

文字列がプリミティブ型になる方法がわかりません。

4

2 に答える 2

17

go の文字列は、C ではこの構造体で表されます。

struct String
{
    byte*   str;
    intgo   len;
};

ポインターは実際のstr文字列データを指しますが、これは null で終了しません。長さはlenメンバーに保持されます。

したがって、C の用語では、go 文字列はプリミティブ型とはかけ離れたものであり、ポインター、長さ、およびメモリ領域です。

ただし、Go は C ではなく、これらの実装の詳細はすべて Go プログラムからは見えません。Go では、文字列プリミティブな不変型です。

于 2013-05-31T08:52:21.483 に答える