【问题标题】:Why is `str` a primitive type?为什么`str`是原始类型?
【发布时间】:2015-07-13 12:08:36
【问题描述】:

查看文档和代码,str 似乎是一个原始类型,而String 是一个struct { Vec<u8> }。现在str 对应于[u8]String 对应于Vec<u8>,不能将str 定义为

struct str { slice: [u8]; }

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

【问题讨论】:

    标签: rust internals


    【解决方案1】:

    一旦出现动态大小的类型,str 就不再是原始类型了;正如您所指出的,它完全可以合理地成为一个结构,并带有一个 lang 项以利于字符串文字。但似乎也没有什么特别好的理由来改变它(尽管这种可能性已经讨论了几次),所以现状仍然存在。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-18
    • 2021-10-25
    相关资源
    最近更新 更多