【发布时间】:2015-07-13 12:08:36
【问题描述】:
查看文档和代码,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 就不再是原始类型了;正如您所指出的,它完全可以合理地成为一个结构,并带有一个 lang 项以利于字符串文字。但似乎也没有什么特别好的理由来改变它(尽管这种可能性已经讨论了几次),所以现状仍然存在。
【讨论】: