为什么 `str` 是原始类型?

问题描述 投票:0回答:1

查看文档和代码,似乎

str
是原始类型,而
String
struct { Vec<u8> }
。现在,正如
str
[u8]
的关系一样,
String
Vec<u8>
的关系,不能将
str
定义为

struct str { slice: [u8]; }

类似于 AsciiStr 的定义方式?为什么它(仍然?)被定义为原始?

string rust primitive
1个回答
11
投票

一旦动态大小的类型出现,

str
就不再有任何充分的理由成为原始类型;正如您所指出的,它完全可以合理地成为一种结构,并带有一个 lang 项以利于字符串文字。但似乎也没有任何特别好的理由来改变它(尽管可能性被讨论了几次),所以现状保持不变。

© www.soinside.com 2019 - 2024. All rights reserved.