欢迎光临散文网 会员登陆 & 注册

数据类型

2021-05-16 17:18 作者:707才不会沉迷B站  | 我要投稿

Rust是静态类型语言,在编译期所有的变量类型都必须确定下来。按理说应该给每个变量都声明类型,不过由于编译器的强大推断能力,有的时候可以不声明,让他自己推断,当然也有推断不了的,就要我们自己指定。

这个guess没指定类型,就会报错,parse可以转换多种类型,不指定就无法确定究竟是哪种类型。在变量后加冒号指定类型

简单类型

1. 整型

字面值:

  • 十进制:34_134

  • 十六进制:0xff

  • 八进制:0o88

  • 二进制:0b10101100

  • 字符(u8):b'A'

按照有符号、无符号和长度分类,如32位有符号:i32,8位无符号:u8,默认是i32类型。有两个特殊的isize和usize是根据机器架构的位数确定的,如果是64位机器他就是64位。

整型溢出编译会通不过,如果使用#[allow(arithmetic_overflow)]使其通过编译,则不加--release运行会panic,加--release会轮回(wrap),像首尾相接的环形数列,比如u8最大255+1会等于0。

标准库还提供了显示处理溢出的方法

  • wrapping_*:像上面说的--release版

  • checked_*:溢出返回None

  • overflowing_*:返回值+是否溢出

  • saturating_*:溢出返回最大值

如255u.wrapping_add(1)结果就是0。

2. 浮点型

分为f32和f64,默认是f64。浮点和整型运算有+-*/%

3. 布尔

bool表示,取值为true/false。

4. 字符

char类型是unicode编码值,4个字节,有些情况下并不是我们认为的可视字符。

符合类型

1. 元组

由一组值组成,类型可以不同,但是个数不可修改个数。可以通过序号访问

也可以解构后,访问x、y和z

2. 数组

也是由一组值组成,但是类型必须相同,且个数不可修改。需要存一些固定数量的值时可以使用,值都在栈上,速度会很快。使用下标可以访问,出界了会panic。

定义方法有几种,正常:

声明类型:

多个相同值:


数据类型的评论 (共 条)

分享到微博请遵守国家法律