gpt4 book ai didi

rust - 为什么我们必须借用变量的类型而不是名称

转载 作者:行者123 更新时间:2023-12-04 11:38:53 25 4
gpt4 key购买 nike

在以下代码中:

struct Book {
pages: i32,
rating: i32,
}

fn display_page_count(book: &Book) {
println!("Pages = {:?}", book.pages);
}

fn display_rating(book: &Book) {
println!("Rating = {:?}", book.rating);
}

fn main() {
let book = Book {
pages: 5,
rating: 9,
};
display_page_count(&book);
display_rating(&book);
}
我们为什么要写 fn display_page_count(book: &Book)而不是 fn display_page_count(&book: Book) ?对我来说, book是我们稍后要借用的数据, Book只是一个类型(这里是 struct),所以我不明白为什么我们必须借用类型而不是变量或参数。有人能告诉我为什么我错了吗?

最佳答案

fn display_rating(book: &Book)声明,book是类型为 &Book 的变量的名称.
使用 fn display_rating(book: Book)表示法意味着所有权被传递给函数并且不返回它,它不能在外部作用域中使用。book: &Book意味着我们正在使用对变量的引用。在这种情况下 book可以有您想要的任何名称,因为它只是类型为 &Book 的变量的名称。 .

关于rust - 为什么我们必须借用变量的类型而不是名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69154933/

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