Rust语言——通用的编程概念

本文介绍了Rust语言中的变量与可变性,包括let和mut关键字的使用,常量的声明规则,以及变量的隐藏现象。接着,文章详细讲解了Rust的四种标量类型:整数、浮点数、布尔和字符,以及复合类型如元组和数组的特点和用法。在Rust中,数组长度固定,而元组和vector提供了更多灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 变量与可变性

let关键字声明变量

let a = 1;//a的值不可变

let mut b = 2;//b的值可变

fn main(){
    let mut b = 1;
    println!("b = {}", b);
    b = 2;
    println!("b = {}", b);
}

常量(constant),绑定值以后也不可变

1.不可以使用mut

2.声明时使用const关键字,类型必须被标注

3.常量在任何作用域下都可声明包括全局作用域

//常量可以存在任意作用域
const MIN_POINTS:u32 = 100_000;
fn main(){
    const MAX_POINTS:u32 = 100;
    println!("MAX常量为:{}", MAX_POINTS);
    println!("MIN常量为:{}", MIN_POINTS);
    xzc();
}
fn xzc(){
    println!("MIN常量为:{}", MIN_POINTS);
    //println!("MAX常量为:{}", MAX_POINTS);//报错max为其他作用域中的定义
}

变量的隐藏(shadowing)

//rust中的变量隐藏
fn main(){
    let a = 1;
    
    let a = a + 1;

    println!("a = {}", a);//a = 2    
}

注意:

1.使用mut时给变量重新赋值需要和变量开始时的数据类型一致

2.而隐藏变量时则可以任意赋值不需要一致

fn main(){
    let a= 1;

    let a = "xzc";//可以实现

    let mut b = 1;
    
    b = "xzc";//报错
}
  • 数据类型
fn main(){
    let str = "42";

    let num:u32 = str.parse().expect("xzc");//parse()后要加expect判断错误
    //当类型较多时应明确类型u32或其他
    println!("num = {}", num);//num = 42
}
  • 标量类型

 Rust有四个主要的标量类型:

--整数类型

        无小数部分 u32就是一个无符号整数,占32位空间

        无符号u开头,有符号i开头

        

--浮点类型

        f32, 32位,单精度

        f64, 64位,双精度(Rust上浮点数的默认类型)

--布尔类型

        true 和 false,占用一个字节大小

        符号是bool

--字符类型

        char类型被用来描述最基础的单个字符

        单引号,占4字节,表情也是单字符,例如'😊'

  • 复合类型

--元组(Tuple)

        可以将多个类型的多个值放在一个类型里

        Tuple的长度固定,一旦声明无法改变

//创建Tuple
fn main(){
    let tuple:(i32, i64, f64) = (500, 40, 4.55);
    println!("{}, {}, {}", tuple.0, tuple.1, tuple.2);
}
//创建Tuple
fn main(){
    let tuple = (500, 40, 4.55);
    let (x, y, z) = tuple;
    println!("{}, {}, {}", x, y, z);
}

--数组

        也可以将多个值放在一个类型里

        每个元素的类型必须相同

        数组的长度也是固定的

//创建数组 数组用中括号
fn main(){
    let a = [1, 2, 3, 4, 5];
    println!("{}{}{}{}{}", a[0], a[1], a[2],a[3], a[4]);
}

        数组没有vector灵活,一般情况下vector更常用

        数组的类型:

                [类型; 长度]

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

                let a = [3; 4];等价于let a = [3, 3, 3, 3];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值