我应该在何时使用 String 与 &str?

主要观点:Rust 有两种主要字符串类型String&str,人们常认为这使 Rust 代码难写,作者分享了使用这两种类型的一些经验法则。
关键信息:

  • 一级法则:总是使用String,从不使用&str,有时需添加.to_string().clone()
  • 二级法则:在结构体中使用String,函数参数用&str,返回值用String
  • 三级法则:在结构体中使用String,函数参数用&str,若函数返回值由参数派生且未被函数体修改则返回&str,否则返回String
  • 四级法则:一般不用在结构体中使用&str,只有在经过性能分析确定复制字符串到结构体是个大问题时才考虑。
    重要细节:通过代码示例展示了不同法则的应用及编译器错误提示,如一级法则中对owned变量的处理,三级法则中不同函数返回类型的示例等。还提到了有人正在研发一种不允许在结构体中存储引用的语言 Hylo 及其理念。
阅读 10
0 条评论