(一)Rust基本类型

1 常量类型

Rust是一个静态类型语言,每一个变量都应该有确定的数据类型。

1.1 整型类型

长度有符号无符号
8-biti8u8
16-biti16u16
32-biti32u32
64-biti64u64
128-biti128u128
archisizeusize

整型类型的可以使用不同进制进行描述。

数字进制例子
十进制98_222
十六进制0xff
八进制0o77
二进制0b1111_0000
单字节(u8)b’A’

1.2 浮点类型

Rust拥有两个浮点数的基本类型,分别是f32f64f64是Rust的默认类型,因为在现代CPU中,f32f64速度相同,但f64拥有更大的范围。Rust中所有的浮点类型均是有符号的。

fn main {
    // 未明确指定类型,默认为f64
    let x = 2.0;
    
    // 明确指定类型,类型为f32
    let y:f32 = 3.0;
}

1.3 布尔类型

Rust和大多数其他语言一样,布尔类型只有两个可能值:truefalse。布尔类型占用一个字节,可以使用bool

fn main() {
	let t = true;
    
    let f:bool = false; // 显式声明类型
}

1.4 字符类型

Rust中的字符占用4字节,这意味着它相较于ASCII来说能标识更多字符。

fn main() {
    let c = 'z';
    let z: char = 'ℤ'; // with explicit type annotation
    let heart_eyed_cat = '😻';
}

2 复合类型

2.1 元组类型

元组可以将不同类型的变量组合在一起。元组在声明后长度不能变化,无法缩小或增长。下面是声明一个元组的例子。

fn main() {
    let tup: (i32,f64,u8) = (500,6.4,1);
}

上面例子中,元组tup绑定到整个元组,因为元组被视为一个单独的复合元素。为了从元组中得到其内部独立的变量,我们可以使用模式匹配来解析元组值。

fn main() {
    let tup = (500, 6.4, 1);

    let (x, y, z) = tup;

    println!("The value of y is: {y}");
}

这个程序首先创建了一个元组,并将tup绑定到该元组。然后使用lettup拆分为独立的变量xyz。这种方法叫做解构,因为它将一个元组拆分为三个单独的部分。最后这个程序输出了y的值。

我们可以通过另一种方式获取元组中的元素。直接通过使用句点后面跟随我们想要获取值的索引来访问元组中的元素。

fn main() {
    let x: (i32, f64, u8) = (500, 6.4, 1);

    let five_hundred = x.0;

    let six_point_four = x.1;

    let one = x.2;
}

这个程序创建了一个元组x,通过独立的索引获取了元组中每一个元素的值。和大多数编程语言一样,元组的索引也是从0开始。没有任何值的元组有一个特殊的名字,unit。这个值和它的类型都写作(),这代表空值或者空返回类型。表达式隐式返回unit如果它们没有返回任何值。

2.2 数组类型

2.2.1 数组声明

另一个获取不同值集合的方法是使用数组。和元组不同,数组中的每一个元素需要是相同的数据类型。不同于其他语言中的数组,Rust中的数组为固定长度。下面是声明数组的一个例子。

fn main() {
    let a = [1,2,3,4,5];
}

当你在元素数量固定或者你想要在栈上分配内存而非堆时数组非常有用。同时数组还有另一种声明方式,例如

fn main() {
	let a: [i32;5] = [1,2,3,4,5];
}

这里,i32代表数组中每一个元素的类型,5代表数组中有5个元素。

你还可以通过给定初始值初始化一个数组,使数组中的每个元素都是该值,例如

fn main() {
    let a:[3;5];
}

数组a中包含5个元素,并且每个元素的初始值均为3

2.2.2 操作数组元素

可以通过索引获取数组中的元素,例如

fn main() {
    let a = [1, 2, 3, 4, 5];

    let first = a[0];
    let second = a[1];
}

也可以通过索引修改数组中的元素,例如

fn main() {
    let mut a = [1,2,3,4,5];
    
    println!("a[0]={}",a[0]);
    
    a[0] = 12;
    
    println!("a[0]={}",a[0]);
}

参考

Rust docs

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值