当前位置: 首页 > news >正文

银川建网站肇庆网站seo

银川建网站,肇庆网站seo,深圳光明新区网站建设,楚雄网站制作枚举是一个很多语言都有的功能#xff0c;不过不同语言中其功能各不相同但是要表达的意思是一致的#xff0c;枚举就是对于一个事物可以穷举出所有可能得值。比如说人的性别就可以用枚举#xff0c;男人和女人两种。下面我们来学习Rust中的枚举。 一#xff1a;枚举定义 …枚举是一个很多语言都有的功能不过不同语言中其功能各不相同但是要表达的意思是一致的枚举就是对于一个事物可以穷举出所有可能得值。比如说人的性别就可以用枚举男人和女人两种。下面我们来学习Rust中的枚举。 一枚举定义 定义一个IP地址的枚举对于IP地址目前广泛使用的有两种IPV4和IPV6。任何一个 IP 地址要么是 IPv4 的要么是 IPv6 的而且不能两者都是。IP 地址的这个特性使得枚举数据结构非常适合这个场景因为枚举值只可能是其中一个成员。IPv4 和 IPv6 从根本上讲仍是 IP 地址所以当代码在处理适用于任何类型的 IP 地址的场景时应该把它们当作相同的类型。 enum IpAddrKind {V4,V6, } 定义一个 IpAddrKind 枚举来表现这个概念并列出可能的 IP 地址类型V4 和 V6 二枚举值使用 创建 IpAddrKind 两个不同成员的实例 let four IpAddrKind::V4; let six IpAddrKind::V6; 函数入参为枚举类型 fn route(ip_type: IpAddrKind) { } 调用上面的route函数 route(IpAddrKind::V4); route(IpAddrKind::V6); 我们定义一个结构体里面有个两个成员一是指示IP类型二是定义IP地址 enum IpAddrKind {V4,V6, }struct IpAddr {kind: IpAddrKind,address: String, }fn main() {let home IpAddr {kind: IpAddrKind::V4,address: String::from(127.0.0.1),};let loopback IpAddr {kind: IpAddrKind::V6,address: String::from(::1),};println!(home ip is {},home.address);println!(loopback ip is {},loopback.address); } 运行结果 有告警因为结构体kind没有使用 我们可以使用一种更简洁的方式来表达相同的概念仅仅使用枚举并将数据直接放进每一个枚举成员而不是将枚举作为结构体的一部分。IpAddr 枚举的新定义表明了 V4 和 V6 成员都关联了 String 值 #[derive(Debug)] enum IpAddr {V4(String),V6(String), }fn main() {let home IpAddr::V4(String::from(127.0.0.1));let loopback IpAddr::V6(String::from(::1));println!(home ip is {:?},home);println!(loopback ip is {:?},loopback); } 运行结果  用枚举替代结构体还有另一个优势每个成员可以处理不同类型和数量的数据。IPv4 版本的 IP 地址总是含有四个值在 0 和 255 之间的数字部分。如果我们想要将 V4 地址存储为四个 u8 值而 V6 地址仍然表现为一个 String enum IpAddr {V4(u8, u8, u8, u8),V6(String), }let home IpAddr::V4(127, 0, 0, 1);let loopback IpAddr::V6(String::from(::1)); 再看一个稍微复杂的枚举例子它的成员中内嵌了多种多样的类型 enum Message {Quit,Move { x: i32, y: i32 },Write(String),ChangeColor(i32, i32, i32), } 这个枚举有四个含有不同类型的成员 Quit 没有关联任何数据。Move 包含一个匿名结构体。Write 包含单独一个 String。ChangeColor 包含三个 i32。 枚举和结构体还有另一个相似点就像可以使用 impl 来为结构体定义方法那样也可以在枚举上定义方法。这是我们在 Message 枚举上定义了一个叫做 call 的方法 impl Message {fn call(self) {// 在这里定义方法体} }let m Message::Write(String::from(hello)); m.call();
http://www.dnsts.com.cn/news/195049.html

相关文章:

  • 营销型手机网站制作旺道优化软件
  • 全国建设地产网站淘宝网店怎么运营起来
  • wordpress4.9段间距网络快速排名优化方法
  • 网站应如何设计建网站的公司深圳
  • 我想做个网站怎么弄自己制作视频的app
  • 做公益网站需要哪些部门认证温州专业网站制作公司
  • 大连h5网站开发东营公共资源交易网
  • wordpress 企业网站模板网站开发 手机 电脑
  • 网站开发考试题万州网站建设果园路
  • 贵州省建设工程质量检测协会网站东莞常平中学录取分数线2022
  • 襄州区住房和城乡建设局网站网站用什么软件做
  • 网站建设 月嫂 模板凯里网站制作
  • 网站做app开发工具wordpress网站收录
  • 做金属小飞机的网站如何制作网站视频
  • 鹤岗住房和城乡建设局网站女装wordpress
  • 做餐饮培训网站广告网站建设新手教程
  • 网站有做货沈阳有多少网站
  • 社交和门户网站的区别太原竞价托管公司推荐
  • 南京网站建设 ww娱乐网站开发spspwk
  • 一个服务器可以建多少个网站网站建设提供资料表
  • 广州做网络服装的网站网络营销是什么工作
  • 做网站还能挣钱电子商务网站开发技术路线
  • 有哪些网站可以做电子邀请函医院网站建设报价表
  • 创可贴设计网站官网诗歌网站开发意义
  • 网站建设课程的认识企业推广是什么职业
  • 企业网站建立步骤广州公司注册一网通
  • 什么建站程序好收录软件开发步骤流程
  • 国外网站设计的网站北京 做网站
  • 网站建设推广加盟沈阳军成网站建设
  • 深圳网站营销型建设东营市建设项目工伤保险是哪个网站