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

自己建商城型网站网络营销策略包括哪几大策略

自己建商城型网站,网络营销策略包括哪几大策略,wordpress同时上传多个文件上传,wordpress上传源码喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 6.1.1. 什么是枚举 枚举允许我们列举所有可能的值来定义一个类型。这与其他编程语言中的枚举类似,但 Rust 的枚举更加灵活和强…

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)

6.1.1. 什么是枚举

枚举允许我们列举所有可能的值来定义一个类型。这与其他编程语言中的枚举类似,但 Rust 的枚举更加灵活和强大,因为它们可以关联数据和方法,类似于其他语言中的类或结构体。

6.1.2. 定义枚举

举个例子,比如说IP地址无非就只有2种——IPv4和IPv6,要么是IPv4要么是IPv6,这种情况就非常适合使用枚举类型,因为枚举的值也只能是它所有变体(枚举所有可能的值)里的一个。

enum IpAddrKind{V4,V6,
}

这个代码使用enum关键字声明了一个叫IpAddrkind的枚举类型,它有两个类型——一个是V4,一个是V6,分别代表IPv4和IPv6。

6.1.3. 枚举值

表示(创建)枚举值非常简单,格式为枚举类型的名字::变体,例如:

let four = IpAddrKind::V4;
let six = IpAddrKind::V6;

枚举的变体都在其标识符所在的空间下,它的标识符就是这个枚举类型的名。

我们可以声明一个函数,它接收IpAddrKind这个类型作为它的参数,而传递的值就即可以是V4也可以是V6

fn route(ip_addr: IpAddrKind) {  match ip_addr {  IpAddrKind::V4 => println!("IPv4"),  IpAddrKind::V6 => println!("IPv6"),  }  
}

让我们试试效果:
整体代码:

enum IpAddrKind{  V4,  V6,  
}  fn main() {  let four = IpAddrKind::V4;  let six = IpAddrKind::V6;// 调用函数  route(four);  route(six);  route(IpAddrKind::V4);  
}  fn route(ip_addr: IpAddrKind) {  match ip_addr {  IpAddrKind::V4 => println!("IPv4"),  IpAddrKind::V6 => println!("IPv6"),  }  
}

输出:

IPv4
IPv6
IPv4

6.1.3. 将数据附加到枚举的变体中

枚举类型是一种自定义的数据类型,所以它可以作为结构体里面字段的类型,例如:

struct IpAddr {  kind: IpAddrKind,  address: String,  
}

IpAddr下的Kind的类型是IpAddrKind,存储网络协议;它的另一个字段address是字符串类型,存储具体的IP地址。

通过这样的结构体,我们可以在main()函数中声明一些存储IPv4、IPv6信息的变量:

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"),  };  
}

Rust允许数据直接附加到枚举的变体中,例如:

enum IpAddr {V4(String),V6(String),
}

在每个变体的后边加上一个类型(不一定都是同一个类型)。例如这里V4V6这两个变体后都跟了String类型。

这种做法的优点是:

  • 不需要额外使用struct
  • 每个变体可以拥有不同的类型以及相关联的数据量

比如说:

enum IpAddr {V4(u8, u8, u8, u8),V6(String),
}

IPv4实际上是由4个32位的数字(也就是u8的容量)组成的,而IPv6是字符串,所以就应该使用String。如果我们想要将V4地址存储为四个u8值,但仍将V6地址表示为一个String值,我们将无法使用结构体。枚举可以轻松处理这种情况。

我们来重写一下6.1.3中的代码:

enum IpAddrKind{  V4(u8, u8, u8, u8),  V6(String),  
}  fn main() {  let home = IpAddrKind::V4(127, 0, 0, 1);  let loopback = IpAddrKind::V6(String::from("::1"));  
}

确实比前文的代码少多了。

6.1.4. 标准库中的IpAddr

事实上,标准库中就提供了关于IP地址的枚举类型,看一下官方是怎么写的

struct Ipv4Addr {// --snip--
}struct Ipv6Addr {// --snip--
}enum IpAddr {V4(Ipv4Addr),V6(Ipv6Addr),
}

Ipv4AddrIpv6Addr的内容这里没有写出来,但这不是重点。重点是此代码说明任何类型的数据放入枚举变体中都是可以的:例如字符串、数字类型或结构。甚至可以包含另一个枚举。

6.1.5. 在枚举类型使用方法(Method)

方法(Method)的概念在上一个文章中就有涉及,这里不过多阐述。定义方法使用impl关键字,如下例:

enum Message {Quit,Move { x: i32, y: i32 },Write(String),ChangeColor(i32, i32, i32),
}
impl Message {fn call(&self) {println!("Something happens");}
}
fn main(){let m = Message::Write(String::from("hello"));m.call();
}

该枚举有四种不同类型的变体:

  • Quit:没有关联任何数据。
  • Move:包含了一个匿名的结构体。
  • Write:包含一个String
  • ChangeColor:包括三个i32值。

在主函数里声明了变量mMessage这个枚举类型下的Write变体,并且附带了String类型的hello。然后又在m上使用了方法call,就会打印Something happens

http://www.hkea.cn/news/540897/

相关文章:

  • 做论坛网站需要多大空间seo推广招聘
  • 中国建设银行网站软件不限次数观看视频的app
  • 网站开发建设的步骤win11优化大师
  • 在线做数据图的网站樱桃bt磁力天堂
  • 网站建设费的税率东莞公司网上推广
  • 上海设计公司排名前十宁波seo搜索优化费用
  • 如皋做网站公司com域名
  • 织梦做企业网站教程网络营销推广方案论文
  • 微信如何添加小程序二十条优化措施全文
  • 网站制作费可以做业务宣传费河北百度推广电话
  • wordpress日主题破解网站排名优化软件有哪些
  • 做公众号app 网站 app济南网站设计
  • 单位网站 单位网页 区别吗福州seo顾问
  • 专业做网站制作的公司百度地图网页版进入
  • 买卖网站域名骗局百度推广登陆
  • 石家庄大型网站设计公司手机怎么建网站
  • 政府网站图解怎么做百度关键词排名靠前
  • 天津做网站印标东莞网络推广排名
  • 设计一个外贸网站需要多少钱沈阳网站推广优化
  • 洗化行业做网站福州百度seo排名
  • 西安app网站开发项目腾讯域名注册官网
  • 网站开发的技术指标如何做网站搜索引擎优化
  • 建网站的要求老铁外链工具
  • wordpress有广告郑州seo优化大师
  • 企业网站推广的实验内容企业宣传网站
  • 如何开发高端市场宁波seo快速优化公司
  • 常用设计资源网站爱网站
  • 企业品牌网站营销关于seo的行业岗位有哪些
  • 群晖怎样做网站惠州网络营销
  • 怎么做网站内部链接的优化品牌营销推广代运营