< 返回版块

snylonue 发表于 2021-01-17 17:20

struct AType {
    inner: Vec<String>
}

impl AType {
    pub fn inner(&self) -> T {}
    pub fn inner_mut(&mut self) -> &mut Vec<String> {
        &mut self.inner
    }
}

这里 AType::inner() 返回 &[String] 还是 &Vec<String> 更好呢

似乎前者更被推荐,但是这样就和 AType::inner_mut() 的返回类型不一致了 (虽然后者也差了个 mut),有点纠结

评论区

写评论
陈笑疯 2021-01-19 04:02

返回&Vec<String>有一个优点就是你可以把返回值传给接受&[String]的函数:foo(s: &[String]) {...}.但返回&[String]就不能传进接受&Vec<String>的函数:foo(s: &Vec<String>).

作者 snylonue 2021-01-17 21:11

所以 inner_mut() 已经决定返回 &mut Vec<String> 了,现在在纠结 inner() 返回哪个 (都是不可变的)

--
👇
TiceCosmos: 切片只能修改 Vec还可增删

TiceCosmos 2021-01-17 18:45

切片只能修改 Vec还可增删

1 共 3 条评论, 1 页