贵美商城网站的首页怎么做代码,中国建材人才网,大良网站设计,浙江省城乡建设厅网站首页前言
超过一定的年龄之后#xff0c;所谓人生#xff0c;无非是一个不断丧失的过程而已。宝贵的东西#xff0c;会像梳子豁了齿一样从手中滑落下去。你所爱的人会一个接着一个#xff0c;从身旁悄然消逝。——《1Q84》 \;\\\;\\\; 目录 前言自定义类型数字转枚举Cargo.tom…前言
超过一定的年龄之后所谓人生无非是一个不断丧失的过程而已。宝贵的东西会像梳子豁了齿一样从手中滑落下去。你所爱的人会一个接着一个从身旁悄然消逝。——《1Q84》 \;\\\;\\\; 目录 前言自定义类型数字转枚举Cargo.tomlmain.rs 自定义类型
RUST中没有类只有结构体。通过实现在结构体中实现固定名称的接口这个就类似类接口中有几个固定的函数。
表示发散函数可以转换为各种类型
use std::{fmt::Display,ops::Add};//定义一个包裹
struct Wrapper(VecString); //Vec是矢量数组//为结构体实现接口而不是实现结构体
//接口名Display是固定的
impl Display for Wrapper{fn fmt(self, f :mut std::fmt::Formatter_) - std::fmt::Result{write!(f,[{}],self.0.join(, )) //要返回的不要分号}
}//定义一个工具
struct Tool(u32);//为结构体实现接口而不是实现结构体
//接口名Display是固定的
impl Display for Tool{fn fmt(self,f :mut std::fmt::Formatter_)-std::fmt::Result{write!(f,{},self.0) //要返回的不要分号}
}
//为结构体实现接口而不是实现结构体
//接口名Add是固定的
impl Add for Tool{//type是重命名type Output Self;//左边的self是参数右边的other是固定成Add类型的参数fn add(self,other:Self) - Self{Self(self.0other.0)}
}fn my_add(a:Tool,b:Tool)-Tool{ab //add函数先前被重载了
}fn main(){//vec![] Vec::new()let a Wrapper(vec![String::from(hello),String::from(world),String::from(hola),String::from(mundo)]);println!(a{},a);let a my_add(Tool(10),Tool(11));println!(a{},a);type Tool_t u32;let b:u321;let c:Tool_t2;println!({}{}{},b,c,bc);
}\;\\\;\\\;
数字转枚举
Cargo.toml
安装两个包需要用cargo下载。cargo的目录如下 main.rs放在src中Cargo.toml与src同一层运行的时候进入proj就行了。
使用 cargo run 运行 Cargo.toml文件
[package]
nameenumToInt
version0.1.0
edition2021[dependencies]
num-traits 0.2.14
num-derive 0.3.3[registries]
ustc{ indexhttps://mirrors.ustc.edu.cn/crates.io-index }main.rs
main.rs文件
use num_traits::FromPrimitive;
use num_derive::FromPrimitive;#[derive(FromPrimitive)]
enum Person{Student1,Teacher,Staff
}fn main(){//枚举转数字let aPerson::Teacher as u32;//数字转枚举match FromPrimitive::from_u32(a){Some(Person::Student) println!([Student]),Some(Person::Teacher) println!([Teacher]),Some(Person::Staff) println!([Staff]),None println!([None]),}
}错误下载还没一半就warning没完没了了