主要观点:Rust 有两种主要字符串类型String
和&str
,人们常认为这使 Rust 代码难写,作者分享了使用这两种类型的一些经验法则。
关键信息:
- 一级法则:总是使用
String
,从不使用&str
,有时需添加.to_string()
或.clone()
。 - 二级法则:在结构体中使用
String
,函数参数用&str
,返回值用String
。 - 三级法则:在结构体中使用
String
,函数参数用&str
,若函数返回值由参数派生且未被函数体修改则返回&str
,否则返回String
。 - 四级法则:一般不用在结构体中使用
&str
,只有在经过性能分析确定复制字符串到结构体是个大问题时才考虑。
重要细节:通过代码示例展示了不同法则的应用及编译器错误提示,如一级法则中对owned
变量的处理,三级法则中不同函数返回类型的示例等。还提到了有人正在研发一种不允许在结构体中存储引用的语言 Hylo 及其理念。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。