rust 基础数据类型

编程入门 行业动态 更新时间:2024-10-15 06:15:31

rust 基础<a href=https://www.elefans.com/category/jswz/34/1768302.html style=数据类型"/>

rust 基础数据类型

默认类型

大部分情况下,rust 可以基于上下文自动推导出变量的类型。下面代码中,变量 x 没有显式,rust 默认是 i32 类型。

fn main() {let x = 5;
}

但也有一些例外情况,比如,字符串类型的转换中变量 x 的类型,rust 就自动推导不出来。这种情况就需要显示的声明变量的类型。

fn main() {let x = "5".parse().expect("fail");let sum = x + 10;
}

整数类型

整数的类型声明有别于其他语言,有符号整数类型名称以 u 开头,无符号以 i 开头。usize 和 isize 是两种特殊的整数类型,它们的长度取决于系统是 32位还是64位。

长度有符号无符号
8bitu8i8
16bitu16i16
32bitu32i32
64bitu64i64
archusizeisize

对于位数为 n 的有符号整形,它可以存储 − 2 ( n − 1 ) -2^{(n-1)} −2(n−1) 到 2 ( n − 1 ) − 1 2^{(n-1)}-1 2(n−1)−1范围内的所有整数,无符号可以存储 0 到 2 n − 1 2^{n}-1 2n−1 范围内的所有整数。

字符类型

在Rust中,char类型被用于描述语言中最基础的单个字符。需要区分的是,char类型使用单引号指定,而不同于字符串使用双引号指定。

Rust中的char类型占4字节,是一个Unicode标量值,这也意味着它可以表示比ASCII多得多的字符内容。拼音字母、中文、日文、韩文、零长度空白字符,甚至是emoji表情都可以作为一个有效的char类型值。

元组类型

元组将不同类型的多个值组合进一个复合类型中,在声明的时候会确定长度,无法在声明后增加或减少其中的元素数量。

fn main() {let tup: (i32, f64, u32) = (1, 2.0, 3);
}

下面通过 let 的方式来解析元组,但这种方式并不方便,我们还可以通过索引来进行访问。

fn main() {let tup: (i32, f64, u32) = (1, 2.0, 3);let (x, y, z) = tup;println!("x:{}, y:{}, z:{}", x, y, z);
}

通过索引的方式来进行访问:

fn main() {let tup: (i32, f64, u32) = (1, 2.0, 3);println!("x:{}, y:{}, z:{}", tup.0, tup.1, tup.2);
}

数组

与元组不同,数组中的每一个元素都必须是相同的类型。Rust中的数组拥有固定的长度,一旦声明就再也不能随意更改大小。

下面通过一对方括号来声明数组,如果要显示的指定数组类型,类型声明也需要一对方括号,括号中写上数组元素的类型,一个分号,以及数组的长度。

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

显示地声明数组类型:

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

Rust 还提供一种初始化数组的语法,前提是你想创建一个包含相同元素,指定长度的数组,你可以在方括号中指定元素的值和长度。下面的例子就创建了一个 [“prefix_”, “prefix_”, “prefix_”] 数组。

fn main() {let a = ["prefix_"; 3];println!("{}", a[0])
}

更多推荐

rust 基础数据类型

本文发布于:2023-11-16 13:05:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1623435.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据类型   基础   rust

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!