Rust Book
Word count
398 words
Reading time
2 minutes
https://github.com/sunface/rust-course
rust 实际上与c语言非常像,同样有指针引用,底层级别的支持也多,在此基础上增加了许多语法糖,简化了用法的同时,为管理内存增加了语言级别的强制保障。
为了提供语言级别的内存安全,rust引出了所有权的概念,首先默认变量是不可变的,对于复杂类型,也就是堆分配上的内存,传递等于移交所有权,丧失所有权的变量自动失效;对于基础类型而言,栈上分配为了方便使用,默认传递等于值拷贝,这也很好理解。同时在c语言作用域上加入了强制保障,超出作用域自动释放,与上述形成闭环。
既然传递所有权实际上是保障指针和引用的安全,rust作为支持指针和引用的语言,当然也可以手动传递引用,rust称之为借用,“借用”当然应该保证借主的生命周期要长于借用者,在此基础上,引用也可以分为可变和不可变,不可变很好理解,只读引用,无需考虑并发问题。对于可变引用就比较麻烦了,因此语言级别做了规定,在同一时间,可变引用只能存在一个,从而保证了安全性。
mimizh