- 浏览: 761983 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
enum Color{ Red = 0xff0000, Green = 0x00ff00, Blue = 0x0000ff, } enum Student{ Boy(i32), Girl(i32,i32), } enum Opt{ Some(i32), None, } fn main() { println!("red:#{:06x}",Color::Red as i32); println!("green:#{:06x}",Color::Green as i32); let x: fn(i32) -> Student = Student::Boy; let y: fn(i32,i32) -> Student = Student::Girl; let x1 = Student::Boy(11); let y1 = Student::Girl(11,143); let o = Some(33); let oNum = o.unwrap();//unwrap可以将Some(33)中的数字取出,如果在不确定的情况下使用unwrap,可能会导致运行时错误 println!("oNum:{}",oNum); match o { Some(n) => println!("num:{}",n), None => (), } } red:#ff0000 green:#00ff00 oNum:33 num:33
//枚举可以是多种数据类型 #[derive(Debug)] enum Color { Red(u32,u32,u32), Green(String), Blue{rgb: (u32,u32,u32),name: String}, } fn value_in_color(c : Color) -> u8{ match c { Color::Red(u32,_,_)=> 1, //相同类型用_ Color::Green(String) => 2, Color::Blue{rgb: (u32,_,_),name: String} => { print!("this is blue."); 3 } } } fn plus_one(x:Option<i32>) -> Option<i32> { match x { None => None, Some(i) => Some(i+1), } } fn main() { let red = Color::Red(200,200,200); let green = Color::Green(String::from("green")); let blue = Color::Blue{rgb:(100,100,100),name:String::from("blue")}; println!("{:?}",red); println!("{:?}",green); println!("{:?}",blue); println!("value is:{}",value_in_color(blue)); let num = Some(5); println!("plus one:{:?}",plus_one(num)); let t = Some(6); //if let 和match有点像,是一个语法糖 if let t = Some(7){ println!("{:?}",t.unwrap()); } } Red(200, 200, 200) Green("green") Blue { rgb: (100, 100, 100), name: "blue" } this is blue.value is:3 plus one:Some(6) 7
发表评论
-
模式匹配
2022-03-27 17:35 170fn main() { //if let ... -
rust mutex
2022-03-27 12:14 216use std::sync::{Arc,Mutex}; ... -
rust channel
2022-03-27 11:58 237use std::sync::mpsc; use std ... -
rust智能指针
2022-03-26 12:31 217Box,Rc,RefCell都是不可变借用,只不过RefCel ... -
test框架
2022-03-25 10:18 226#[derive(Debug)] struct Rect ... -
lifeCycle
2022-03-24 14:10 159fn longest<'info>(x: &a ... -
hashmap
2022-03-24 11:11 168use std::collections::HashMap ... -
rust map
2020-08-18 16:02 500fn test_map(){ let a=[1, ... -
rust call
2020-08-13 10:27 341fn call<F>(clousure:F) ... -
rust闭包
2020-08-12 11:00 257返回闭包 fn returns_closure() -&g ... -
rust cell
2020-08-06 11:47 226fn test_cell(){ use std: ... -
rust引用记数
2020-08-06 11:10 320fn test_ref(){ use std:: ... -
rust内存泄漏
2020-08-03 10:20 455原因主要有三种: 1.线程崩溃,析构无法调用 2.使用引用记数 ... -
rust as类型转换
2020-07-24 10:34 582fn testAs(){ let a = 1u3 ... -
rust 线程 spawn
2020-07-24 10:03 298use std::thread; use std::ti ... -
rust println!
2020-07-20 11:09 342fn testPrintln(){ printl ... -
rust trait
2020-07-16 20:27 270使用trait可以让不用的类型实现同一个行为,定义函数的默认实 ... -
rust 范型
2020-07-15 20:00 271fn testOption(){ let i : ... -
rust 优先队列BinaryHeap
2020-07-15 09:22 851Rust提供的优先队列是基于二叉最大堆实现的 fn te ... -
rust set
2020-07-15 09:23 487HashSet<K>和BTreeSet<K& ...
相关推荐
锈枚举vs特征基准简单的基准来比较Rust枚举和特征的性能大约基准测试结果在Windows 10的Core i7-3770 @ 3.4GHz上运行running 4 teststest test_enum_variant ... ignoredtest test_trait_variant ... ignoredtest ...
单调解算器设计为易于与Rust枚举表达式一起使用的单调求解器这可以用来: 人工智能常识的研究模型在学习逻辑和语言时测试推理规则生成故事情节搜索和提取数据在,它是具有类似Prolog语法的Avatar Logic的实验性实现...
linear_solver 设计为易于与Rust枚举一起使用的线性求解器。 这是一个用于自动定理证明的库。 线性求解意味着可以用其他事实代替某些事实。 该技术还可用于使定理证明更加有效。 如果您正在寻找无法删除事实的求解器...
柴油派生枚举直接将Rust枚举与柴油ORM一起使用。 最新版本1.0.0已针对柴油1.4和Rustc 1.39.0进行了测试。 它可以与柴油衍生枚举一起使用。将Rust枚举直接与柴油ORM搭配使用。 最新版本1.0.0已针对柴油1.4和Rustc ...
在Rust编程语言中,有一套名为`iso639`的库,它提供了一个枚举类型,该类型包含了ISO 639标准中的所有语言代码。这个库使得开发者可以方便地在程序中处理和验证语言代码,同时提供了相关的实用工具,以帮助实现更...
在 Rust 实现中,我们使用了 Rust 的枚举类型来表示棋子的状态,并利用了模式匹配和迭代器来检查游戏是否结束。通过这个项目,开发者可以学习如何使用 Rust 进行游戏逻辑的实现,并理解 Rust 的枚举类型和模式匹配的强大...
Rust还引入了枚举模式匹配,增强了代码的可读性和可维护性。 3. **内存管理与所有权**:Rust最引人注目的特性之一是其所有权系统,它保证了内存安全而无需垃圾回收机制。每个值都有一个唯一的“所有者”,并且当...
2. **类型系统**:深入讨论Rust的类型系统,包括静态类型、枚举、结构体、元组、引用和智能指针。Rust的类型系统是其强大安全性的重要组成部分。 3. **函数和闭包**:讲解Rust中的函数定义、参数传递、返回值以及...
3. **结构体与枚举**:Rust中的结构体用于组合数据,枚举则允许定义一组相关的值。枚举可以包含关联数据,称为枚举变体,这在处理多种情况时非常有用。 4. **函数与闭包**:Rust支持函数和匿名函数(闭包)。闭包...
- **PCI总线设备支持**:实现了PCI总线设备的枚举、基址寄存器(BAR)获取和中断设置等功能。 - **网络功能增强**:添加了更多网络相关的系统调用,如sys_socket、sys_close、sys_connect等,支持了ping、UDP和TCP...
在代码编写过程中,Rust 的结构体和枚举可以帮助我们更好地组织和管理资源。例如,可以定义一个结构体表示 STM32F103 的某个功能模块,然后通过方法实现具体的硬件操作。这样,代码既保持了清晰的结构,又实现了低...
【Python-EroDir:Rust编写的Web目录文件枚举工具】 Python-EroDir是一款基于Rust编程语言构建的高效Web目录和文件枚举工具,主要用于网络安全领域中的渗透测试和漏洞发现。它提供了对目标网站的快速扫描能力,能够...
直接将Rust枚举与 ORM一起使用。 最新版本1.1.1已针对diesel 1.4和rustc 1.39.0进行了测试。 它可能适用于旧版本。 注意:当前的总泵分支跟踪diesel总泵,并且不适用于diesel 1.x 用法示例: 货代 [ dependencies...
变体访问 一组特征和宏,用于基于C ++标准库中的std :: variant API为Rust枚举定义通用api基本用法考虑以下枚举: enum Enum { F1 ( i32 ), F2 ( bool )} 当然,我们可以直接使用字段名称和match语句使用此类枚举。...
### Rust 程序设计语言(第二版)简体中文版 #### 入门指南 在本书《Rust 程序设计语言》第二版简体中文版中,作者们致力于帮助读者理解 Rust 这一现代系统级编程语言的基础与进阶特性。此书涵盖了从安装到实际...
2. **结构体与枚举(struct 和 enum)**:Rust中的结构体用于定义自定义数据类型,而枚举则允许我们定义一组相关的值。结构体和枚举是构建复杂数据模型的基础。 3. **函数(Functions)**:Rust中的函数可以有参数...
Rust编程语言是一种系统编程语言,它注重安全性、速度和并发性。Rust by Example是一个在线教程,它提供了一系列示例来展示如何使用Rust编程语言进行开发。该教程系统地展示了Rust的各种编程语法和概念,旨在帮助...
种类封装类型是一个称为Value的Rust枚举,并在定义。 可以将更复杂的类型定义为它们自己的模块中的struct或enum,它们可以位于目录中。内置功能和模块Python 3.6.5具有多种内置函数和模块,Cannolib通过模块提供了...
回到枚举的话题,Rust枚举的一个独特之处是它们是不可变的(immutability)和不可重用的(non-reuseable)。这意味着一旦创建了一个枚举实例,就不能改变它的值,也不能将其赋值给另一个变量。这种设计增强了类型...
1. **Rust基础知识**:Rust的基础包括变量、数据类型(如整型、浮点型、布尔型、枚举、结构体)、作用域、控制流(if/else、循环、匹配)、函数、引用和所有权系统。 2. **所有权系统**:Rust的核心特性之一,它...