IRON = 26, }; int main(void) { enum atomic_number element = 26; if (element == IRON) { printf("隔壁Rust做不到,oh yeah!\n"); } return 0; } 但是在Rust中,以下代码: enum MyEnum { A = 1, B, C, } fn main() { // 将枚举转换成整数,顺利
enumContainer<T> { Some(T), None, } fnmain() { letnumber: Container<i32> = Container::Some(42); lettext: Container<&str> = Container::Some("Hello"); matchnumber { Container::Some(value) =>println!("Number: {}", value), Container::None=>println!("No number"), } matchtext {...
enum IpAddr { V4(u8, u8, u8, u8), V6(String),}let home = IpAddr::V4(127, 0, 0, 1);let loopback = IpAddr::V6(String::from("::1"));更复杂的例子123456 enum Message { Quit, // 不关联数据 Move { x: i32, y: i32 }, // 匿名结构体 Write(String), ChangeColor(i32, i32...
("Number: {}", number); } } 3、字符串(String) 字符串是一种文本数据类型,它由一系列Unicode字符组成。在Rust中,字符串类型使用String表示,它是一个可增长的、可变的字符串类型。 以下是一个字符串的示例: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 fn main() { let message: String = ...
Enum Option<T>{None,Some(T) } Option及其变体 None、Some(T) 都是系统内置即Prelude的,所以可以直接使用,而不用指明一长串的命名空间。如下示例: Let some_number=Some(5);//变量类型为Option<i32>Let some_string=Some("a string");//变量类型为Option<String>letabsent_number:0ption<i32>=None;//...
enum IpAddr { IPV4 (String), IPV6 (String),} 使用:let loopback = IpAddr::IPV4("127.0.0.1".to_string()); // 定义了一个ipv4地址,其值“127.0.0.1” 简单起见,可以理解为rust 的枚举,融合了C枚举和联合体,实现了数据类型和关联数据的定义和绑定。
再来就是在 Mac OS X 下面,panic 出来的堆栈完全没法看,没有 file 和 line number 的信息,根本没法方便的查 bug。 当然,毕竟 Rust 是一门比较新的语言,还在不断的完善发展,我们还是很有信心它能越来越好的。 Q & A 1. Go 的 Cgo 在效率上面与 Rust FFI 有啥区别?
2、枚举(Enum) 四、其他数据类型 1、切片(Slice) 2、Option类型 3、Result类型 总结 导言 Rust是一种现代的、安全的系统编程语言,注重内存安全和并发性。在Rust中,数据类型是程序中最基本的构建块之一。本篇博客将详细解释Rust的各种数据类型,并提供相关代码示例。
enum Data { Empty, Number(i32), Array(Vec<i32>), } Empty变体不存储任何其它数据,Number变体中有一个 i32,Array变体保存了一个元素类型为 i32 的 Vec。首先来看一下Array变体的内存布局: 首先是一个整数标记,这里就是 2 。然后是三个 usize 用来存储 Vec 。编译器还将添加一些 padding 以满足内存对齐。
pub enum Option<T> { /// No value. None, /// Some value of type `T`. Some(#[stable(feature = "rust1", since = "1.0.0")] T), } 1. 2. 3. 4. 5. 6. Option在标准库中存在例子的,下面看一下例子: let some_number = Some(5); ...