从Rust中的不可变访问器返回&String vs&str

时间:2019-08-25 13:34:08

标签: rust api-design ownership

我正在设计一个简单的结构,它将多个拥有的数据组合在一起。一旦数据进入结构体,我就不想将其暴露给突变。该结构的字段之一是字符串,我不确定如何通过其getter函数公开它。

想到的两种方法如下:

struct Foo {
    bar: String,
}

impl Foo {
    // Option 1
    fn bar(&self) -> &String { ... }
    // Option 2
    fn bar(&self) -> &str { ... }
}

我不确定用Rust最干净的方法是什么。一般情况下哪个更好?这两个选项在概念上对API用户代表什么?

0 个答案:

没有答案