初学Rust笔记

今天是学习rust的第三天,首先总结昨天的学习内容,温故才能知新~

学习材料:Rust官网教程《The Rust Programming Language》

学习内容概览

  1. Getting Started:hello world基础代码、Hello Cargo 初试cargo命令。
  2. Programming a Guessing Game:通过一个猜数字的小例子初识Rust中的基础语言。
  3. Common Programming Concepts:包括变量及其可变性、数据类型、函数、注释和控制流。
  4. Understanding Ownership:首先介绍了ownership的定义,随后讲解了reference和slice。 (本部分为主要笔记内容)
  5. Using Structs to Structure Related Data:本章内容为结构体。

Hello Cargo没有太大的难度,基本跟随书上的介绍一步一步做就可以。学习了cargo buildcargo runcargo test等命令,另外还介绍了依赖库的添加:在cargo.toml中的 [dependencies] 下添加依赖(此过程中如果遇到下载慢的情况可以参照上一篇笔记的解决方法);以及在依赖包的更新问题:cargo.lock中会记录各个依赖的版本,防止出现由于版本更新而导致的bug。

第2、3章为rust的基本变量及语言规则,具体内容见每章代码笔记。

第四章:Ownership
Ownership作为rust独特的、重要的一个特点,使得rust具有memory的安全性保证,可以有效地避免出现悬浮指针、悬浮变量的问题。rust在运行代码时,通过ownership来确定每个变量的有效范围,以及何时使用drop命令来释放该变量的空间。

Ownership rules:(三规则)

  • rust中的每个值都有自己的拥有者 (owner)
  • 每次只能有一个owner
  • 当owner超过其范围时(scope),值就会被drop

本章采用了较为复杂的 S t r i n g String String数据类型作为例子。考虑以下代码:

let s1 = String::from("Hello");
let s2 = s1;

此句中,将s1的值赋给了s2,rust的处理方式是:将s1 out of scope,s1此时不再是valid的值,因而如果在之后调用s1,rust将会报错:

error: use of moved value:'s1'

一张图表示这个过程:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值