Rust 引用和借用2025年3月17日 | 阅读 3 分钟 引用是指作为参数传递给函数的地址。 借用就像我们借用东西一样,当我们完成时,我们会把它还回去。引用和借用是相互的,即当一个引用被释放时,借用也会结束。 为什么要借用?使用借用概念的原因如下:
让我们通过一个例子来理解这一点。 输出 length of the string 10 在上面的例子中,calculate_length() 函数具有对字符串 str 的引用作为参数,而没有获得它的所有权。 在上面的场景中,&str 是对变量 str 的引用,但它不拥有它。因此,即使引用超出范围,引用所指向的值也不会被删除。 在上述情况下,变量 's' 在控制权没有返回到 main() 函数之前是有效的。当变量作为引用而不是实际值传递给函数时,我们不需要返回值来归还所有权。 让我们尝试修改借用的值。 以下是上述程序的输出 ![]() 在上面的例子中,它抛出一个错误,因为 &x 是一个不可变的引用。 因此,我们无法更改 y 的值。 可变引用我们可以通过使用可变引用来修复上述错误。 可变引用是可以更改的引用。 让我们通过一个例子来理解这一点。 输出 After modifying, the value of x is 9 在上面的例子中,我们创建了一个可变引用,即 &mut x,该引用由变量 y 指向,变量 y 的类型为 &i32。 现在,我们可以更改 'y' 变量引用的值。 我们赋值 9 i.e*y=9。 因此,值 x 也变为 9,因为两个变量引用相同的内存位置。 可变引用的限制
例如 在上述情况下,编译器会抛出一个错误,因为它包含两个在 Rust 语言中不可能出现的可变引用。
例如 在上述情况下,编译器会抛出一个错误,因为当我们有不可变引用时,我们不能有可变引用。 下一个主题Rust 切片 |
我们请求您订阅我们的新闻通讯以获取最新更新。