查看文档和代码,它看起来str
是一个原始类型,String
而是一个struct { Vec<u8> }
.现在,作为str
是一个[u8]
什么String
是一个Vec<u8>
,不能str
被定义为
struct str { slice: [u8]; }
Run Code Online (Sandbox Code Playgroud)
类似于AsciiStr的定义方式?为什么/它(仍然?)被定义为原始的?
Chr*_*gan 11
一旦出现动态大小的类型,就不再有任何理由str
成为原始类型; 它可以完全合理地成为一个结构,如你所示,带有lang项目以获得字符串文字.但似乎没有任何特别好的理由改变它(尽管可能性已被讨论过几次),因此现状仍然存在.