相关疑难解决方法(0)

如何构建Rc <str>或Rc <[T]>?

我想创建一个Rc<str>因为我想减少间接跟随访问Rc<String>需求的2个指针.我需要使用一个,Rc因为我真的拥有共享权.我详细介绍了我在字符串类型中遇到的更具体问题.

Rc 有一个?Sized约束:

pub struct Rc<T: ?Sized> { /* fields omitted */ }
Run Code Online (Sandbox Code Playgroud)

我还听说Rust 1.2将提供适当的支持来存储未经过类型化的类型Rc,但我不确定它与1.1的区别.

str案例为例,我的天真尝试(也就是从a构建String)也失败了:

use std::rc::Rc;

fn main() {
    let a: &str = "test";
    let b: Rc<str> = Rc::new(*a);
    println!("{}", b);
}
Run Code Online (Sandbox Code Playgroud)
error[E0277]: the trait bound `str: std::marker::Sized` is not satisfied
 --> src/main.rs:5:22
  |
5 |     let b: Rc<str> = Rc::new(*a);
  |                      ^^^^^^^ `str` does not have …
Run Code Online (Sandbox Code Playgroud)

rust

15
推荐指数
2
解决办法
1258
查看次数

标签 统计

rust ×1