查看文档和代码,似乎str
是一个基本类型,而String
是struct { Vec<u8> }
.str
对[u8]
就像String
对Vec<u8>
一样,str
不能被定义为
struct str { slice: [u8]; }
与AsciiStr的定义类似?为什么(现在)还是定义为原始?
查看文档和代码,似乎str
是一个基本类型,而String
是struct { Vec<u8> }
.str
对[u8]
就像String
对Vec<u8>
一样,str
不能被定义为
struct str { slice: [u8]; }
与AsciiStr的定义类似?为什么(现在)还是定义为原始?
一旦出现了动态大小的类型,str
就不再是原始类型了;正如您所指出的,它完全可以合理地成为一种 struct ,带有一个lang项,用于字符串文本.但似乎也没有什么特别好的理由改变它(尽管可能性被讨论了几次),因此现状依然存在.