Rust 强制类型转换 使用as 将 不变 变成 可变

fn g(&self)->&mut Self{
        unsafe {  & mut * ( self as * const Self as * mut Self)}
    }
as 只能转换基本数据类型 ,结构体类型 只能转换指针,
     不能转换结构体引用,应该是结构体引用也被视为了复杂的结构体类型。

变量声明 * 表示指针
 let i:* mut Struct_A ;  指针 i 指向 结构体的内容,并且内容可变
let i:* const Struct_A ;  指针 i 指向 结构体的内容,并且内容不可变
指向的内容可变和不可变
指针的可变和不可变,即 指针 所代表的地址 是否 可否 重新 指向新的地址

引用 看做 别名 ,其实质 仍是 指针 指向,避免内容复制

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章