2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家
4.4.0 正文之前
本节实际上类似于 C++ 中智能指针的移动语义在编译器层面所受到的约束。Rust 中引用的写法,通过编译器的限制,变成了 C++ 中编写指针最理想、最规范的方式。因此,任何学过 C++ 的人都一定会觉得本章非常熟悉。
如果你觉得有帮助,请点赞、收藏并关注。若想持续学习,请关注本系列。
4.4.1 引用
引用允许函数使用某个值而不获取其所有权。声明引用时,在类型前加上 & 以表示这是一个引用。例如,String 类型的引用是 &String。如果你学过 C++,C++ 中的解引用操作符是 *,Rust 中也是一样的。
学习了引用之后,你就可以简化上一篇文章末尾的示例。
以下是之前的代码:
fn main() {
let s1 = String::from("hello");
let (s2, len) = calculate_length(s1);
println!("字符串 '{}' 的长度为 {}", s2, len);
}
fn calculate_length(s: String) -> (String, usize) {
let length = s.len();
(s, length)
}
以下是修改后的代码:
fn main() {
let s1 = String::from("hello");
let length = calculate_length(&s1);
println!("字符串 '{}' 的长度为 {}", s1, length);
}
fn calculate_length(免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。