首页 > 其他分享 >[记]Rust可变引用与不可变引用

[记]Rust可变引用与不可变引用

时间:2022-09-07 11:36:22浏览次数:72  
标签:p2 p3 p1 mut println 引用 可变 var Rust

--->

fn main() {
    let mut var = 0_i32;
    {
        let p1 = &mut var;//p1 指针本身不能被重新绑定,我们可以通过p1改变变量var的值
        *p1 = 1;
        println!("p1:{}",p1);
        println!("var:{}",var);
    }
    
    {
        let temp = 2_i32;
        let mut p2 = &var;//我们不能通过p2改变变量var的值,但p2指针本身指向的位置可以被改变
        println!("p2:{}",p2);
        p2 = &temp;
        println!("p2:{}",p2);
    }
    {
        let mut temp = 3_i32;
        let mut p3 = &mut var;//我们既可以通过p3改变变量var的值,而且p3指针本身指向的位置也可以改变
        println!("p3:{}",p3);
        *p3 = 3;
        println!("p3:{}",p3);
        println!("var:{}",var);
        p3 = &mut temp;
        println!("p3:{}",p3);
    }
    
}

 

--->

输出

p1:1
var:1
p2:1
p2:2
p3:1
p3:3
var:3
p3:3

 

--->

标签:p2,p3,p1,mut,println,引用,可变,var,Rust
From: https://www.cnblogs.com/hardfood/p/16664756.html

相关文章

  • 引用计数的存储
    在64位中,引用计数可以直接存储在优化过的isa指针中,也可能存储在SideTable类中。在isa里面,有一个extra_rc参数其中:rc就是retainCount引用计数的意思。则has_sidetable_r......
  • vue前端项目组件实现自动注册并且全局可引用
     1、首先创建一个组件的目录,例如图中components2、创建一个js主文件和一个存放组件的目录如global3、在js中加入图中代码,实现自动识别组件功能4、在文件入口main.js......
  • Java中如何创建不可变(immutable)类
    什么是不可变类1.不可变类是指类的实例一经创建完成,这个实例的内容就不会改变。2.Java中的String和八个基本类型的包装类(Integer,Short,Byte,Long,Double,Float,......
  • 可变数组
    可变数组上完翁恺老师的可变数组后发现并不是很理解,但是跟着敲了一遍,也有些许的感觉,下面就记录一下首先我们的确定可变数组需要些什么函数:Arrayarray_create(intin......
  • 10.6 函数参数定义_个数可变的位置形参_个数可变的关键字形参
     deffun(*args):#函数定义时,个数可变的位置参数print(args)fun(10,20,30)#输出结果为元组deffun1(**args):#函数定义时,个数可变的关键字形参......
  • 用 Rust 重写网站,性能提升了18倍!
    对于构建中小型网站/个人博客来说,Hakyll是一个不错的静态网站生成器库,9年前的JonasHietala正是选择了Hakyll编写博客网站。但随着时间的推移,网站出现各种问题,诸如速......
  • Rust 如何实现 async/await
    目录FutureWake&Context为什么需要executor?什么是waker?async/awaitExecutorWakerstruct到ArcWaketraitFuturesUnordered单线程executor线程池executor总结异......
  • 可变参数
    1.定义java允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。就可以通过可变参数实现2.基本语法 访问修饰符返回类型方法名(数据类型...形......
  • TS创建接口和接口类型数组,并统一导入后引用
    在app.ts中引用import{users,IRoute,IUser,routes}from"./data";在index.ts中统一导入后导出export*from"./routes";export*from"./users";importro......
  • JAVA进阶--不可变集合、Stream流、异常--2022年9月4日
    第一节 不可变集合1、不可变集合的特点定义完成后不可以修改,或者添加、删除2、如何创建不可变集合List、Set、Map接口中,都存在of方法可以创......