string
Go 中的 a 就像Cchar*
中的 a (或 a char[]
)还是string
C++ 中的类...或其他什么?
我不明白字符串如何成为原始类型。
go中的一个字符串用C中的这个结构表示
struct String
{
byte* str;
intgo len;
};
指针指向实际的str
字符串数据,但这不是以空值结尾的——长度保存在len
成员中。
因此,在 C 语言中,go 字符串与原始类型相差甚远,它是一个指针、一个长度和一个内存区域。
然而 Go 不是 C,所有这些实现细节对 Go 程序都是不可见的。在 Go 中,字符串是原始的不可变类型。
string 是所有 8 位字节字符串的集合,通常但不一定代表 UTF-8 编码的文本。字符串可以为空,但不能为零。字符串类型的值是不可变的。
它们是不可变的,这似乎使它们不像您所比较的 C 概念,而更像是真正含义的const char []
地方。const
const
任何东西都可以是编程语言中的原始类型,这取决于设计者。“成为原始人”并不一定意味着实际上是原始人。:)