gpt4 book ai didi

rust - Rc::deref 是否返回引用?

转载 作者:行者123 更新时间:2023-11-29 08:04:59 26 4
gpt4 key购买 nike

<分区>

以下代码:

use std::rc::Rc;

fn main() {
let s = Rc::new(String::from("Hello"));
let o: &String = *s;
}

给我这个错误:

  = note: expected type `&std::string::String`
found type `std::string::String`

我预计 *s 会提供某种引用,因为 deref 签名是 fn deref(&self) -> &T

让我感到困惑的一件事是,如果我将 let o 行更改为:

let o: String = *s;

我现在收到一个错误消息:cannot move out of borrowed content

所以我有两个相关的问题

  1. 为什么 Rc 值的 *s 不返回引用?
  2. 我明白为什么不能移动引用,为什么 *s 是借用而不是引用?我以为这些词的意思是一样的?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com