gui*_*375 5 ownership ampersand rust borrow-checker
在下面的代码中:
\nstruct Book {\n pages: i32,\n rating: i32,\n}\n\nfn display_page_count(book: &Book) {\n println!("Pages = {:?}", book.pages);\n}\n\nfn display_rating(book: &Book) {\n println!("Rating = {:?}", book.rating);\n}\n\nfn main() {\n let book = Book {\n pages: 5,\n rating: 9,\n };\n display_page_count(&book);\n display_rating(&book);\n}\nRun Code Online (Sandbox Code Playgroud)\n我们为什么写fn display_page_count(book: &Book)而不写fn display_page_count(&book: Book)?对我来说,book我们\xe2\x80\x99稍后想要借用的数据Book只是一个类型(struct这里是a),所以我不\xe2\x80\x99不明白为什么我们必须借用类型而不是变量或参数。有人能告诉我为什么我\xe2\x80\x99m 错了吗?
小智 1
在fn display_rating(book: &Book)声明中,book是类型为 的变量的名称&Book。
使用该fn display_rating(book: Book)符号意味着所有权被传递给函数,并且如果不返回它,则不能在外部作用域中使用它。
这book: &Book意味着我们正在使用对变量的引用。在这种情况下,book可以有任何您想要的名称,因为它只是 type 变量的名称&Book。
| 归档时间: |
|
| 查看次数: |
978 次 |
| 最近记录: |