Rust语言与内存安全设计(一)——入门介绍

Rust语言与内存安全设计(一)——入门介绍

根据《精通Rust(第二版)》的顺序进行记录
因为博主总在上课的时候困成狗,所以试图记录一下防止睡着,笔记可能看起来个人风格太强,也许还有未完成的部分,如果有时间的话改成阅读性更强的博客吧
也欢迎看到这篇笔记的人督促博主不要上课睡觉23333

2002.9.1 入门介绍

一些基本命令行

在powershell创建新项目: $cargo new [项目名]
编译源文件: rustc XX.rs
执行直接.\就可以

about Copy Opration:

// about Copy Opration:
let x: i32 =5;
let y=x;
println!("The value of x is{:?}",x);
println!("The value of y is {:?}",y);
// about Move Opration:
let x=String::from("hello");
let y=x;
println!("The value of x is{:?}",x);//会报错
println!("The value of y is {:?}",y); 
let y: &String=&x; //不会报错
// immutable(不可改的) Borrow
let x=String::from("hello");
x.push_str(string:"world"); //会报错,因为是不可改的引用

let mut x=String::from("hello");
let y=&mut x;
println!("The value of x is{:?}",x);
println!("The value of y is {:?}",y); //会报错,不能出现两个可修改的指针

//value is deallocated
let y: &String;
{
    let mut x: String=String::from("hello");
    y=&x;
}
println!("The value of y is {:?}",y); //会报错,因为生存周期不对

关于Rust的内存安全性:

栈内存与堆内存的区别:确定大小vs内存动态变化

Owner原则:一个值只有一个所有者,一个值在任一时刻都只有一个拥有者,当所有者离开后值自动丢弃

出现数据竞争的三种行为:两个指针同时访问同一数据,至少有一个指针用于写入数据,没有使用任何机制来同步对数据的访问


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值