LingKang的Rust学习日记

本文介绍了Rust语言中的引用类型(借用引用和原始引用)、整数溢出处理、复合类型(数组和元组)以及所有权概念,强调了变量生命周期管理和内存安全的重要性,包括`drop`、`move`和避免`danglingreference`。
摘要由CSDN通过智能技术生成

updateto p20

5.1 - 定义和实例化 struct_哔哩哔哩_bilibili

rust 

Rust中的引用有两种类型:借用引用(Borrowing References)和原始引用(Raw References)。 借用引用是Rust中最常见的引用类型,它们以指针的形式指向某个值,并且具有借用规则,用于确保在引用的生命周期内,被引用的值不会被修改或移动。借用引用使用`&`符号表示。 原始引用是一种更底层的引用类型,它们不受借用规则的限制,可以直接操作内存。原始引用使用`*`符号表示。 无论是借用引用还是原始引用,它们在内存中都以指针的形式存储。这种设计使得Rust能够在编译时进行内存安全的检查,避免了空指针和数据竞争等常见的内存错误。


3.2 标量


isize base on the arch of cpu , 64 bits cpu , isize = 64 bits


整数溢出

cargo build --release 发布模式不会检查panic的整数溢出,如果发生,会执行环绕操作, 如u8 =0 - 255 , 256会变成0,257变成1...
cargo build 调试模式会检查


char 占4个字节,编码格式按unicode  'a' 

3.3 复合类型 数组和元组 tuple

tuple:
let tup:(i32,i32,u8) = (1,2,3)
or 
let (x,y,z) = tup
println!("{}",tup.0,tup.1,tup.2)


数组 data stored in stack not heap 

let a:[i32;5] = [1,2,3,4,5]
let a = [3;5]   3个5

3.5

if  是表达式所以放在let右边
let x = if xxx {} else {};  if else要返回同个类型

3.6
loop:
loop也是一个表达式 statement

break + value


while:
for:

range 
rev表示reverse

4.1.2 ownership
string in heap

drop:
变量走出作用域会drop

move 
data transfer

引用本质就是指针,相当于凭空多了一个值,自然不存在所有权的限制,主要是为了维持rust所有权规则
同一作用域,可变引用只能1个或多个不可变引用

dangling reference 悬空引用 ,空指针


&str 字符串切片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值