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

广州的服装网站建设西安市住房和城乡建设局网站

广州的服装网站建设,西安市住房和城乡建设局网站,餐饮o2o 网站建设,汽车之家网站开发方案喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 7.3.1. super 我们可以通过在路径开头使用super来访问父级模块路径中的内容,就像使用..语法启动文件系统路径。例如&#xff…

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

7.3.1. super

我们可以通过在路径开头使用super来访问父级模块路径中的内容,就像使用..语法启动文件系统路径。例如:

fn deliver_order() {}mod back_of_house {fn fix_incorrect_order() {cook_order();super::deliver_order();}fn cook_order() {}
}

当然也可以用绝对路径实现同样的效果:

fn deliver_order() {}mod back_of_house {fn fix_incorrect_order() {cook_order();crate::deliver_order();}fn cook_order() {}
}

7.3.2. pub struct

pub关键字加在stuct前就可以把结构体声明为公共的,如下例:

mod back_of_house {pub struct Breakfast {toast: String,seasonal_fruit: String,}
}

需要注意的是,这个结构体虽然是公共的,但结构体中的字段默认是私有的,除非加上pub关键字。

在Rust里,绝大多数情况下如果某个东西没加pub,那就是私有的。(下文会讲到特例)

将字段设为公有也很简单。下面展示一下把Breakfasttoast改为公有后的代码:

mod back_of_house {pub struct Breakfast {pub toast: String,seasonal_fruit: String,}
}

我们再来看一个复杂点的代码例:

mod back_of_house {pub struct Breakfast {pub toast: String,seasonal_fruit: String,}impl Breakfast {pub fn summer(toast: &str) -> Breakfast {Breakfast {toast: String::from(toast),seasonal_fruit: String::from("peaches"),}}}
}pub fn eat_at_restaurant(){let mut meal = back_of_house::Breakfast::summer("Rye");meal.toast = String::from("Wheat");
}
  • 在刚才的结构体之上,又构造了一个关联函数summer,参数是字符串切片类型的toast,返回值是Breakfast类型,Breakfast.toast的值会是传进来的这个参数的值,Breakfast.seasonal_fruit的值则会被设为peaches。summer这个函数本质上是一个构造器,构造了Breakfast的实例
  • eat_at_restaurant这个函数中先使用相对路径调用了summer这个构造器构造了一个实例,把它赋给了可变变量meal。而meal中的toast字段被设为了Rye,seasonal_fruit的值则是peaches(构造器中写的)。
    下面一行中,因为Breakfast这个结构体是公共的所以meal.toast可以直接被更改,这里是改为了Wheat。

eat_at_restaurant这个函数中写下meal.seasonal_fruit = String::from("buleberries");这一行会不会报错呢?答案是会的,因为结构体中的字段默认是私有的seasonal_fruit并没有被声明为公有,所以外部代码无法修改它,而这里这句话尝试进行修改,所以就会报错。

7.3.3. pub enum

struct一样,只要把pub关键字加上枚举类型也能变为公有的。如下例:

mod back_of_house {pub enum Appetizer {Soup,Salad,}
}pub fn eat_at_restaurant() {let order1 = back_of_house::Appetizer::Soup;let order2 = back_of_house::Appetizer::Salad;
}

但于struct不同,struct下的字段默认是私有的,而公共的枚举类型下的变体默认就是公共的,不需要把pub关键字加在变体之前。这一点和Rust默认私有的规则不一样,因为只有公共的枚举类型下是公共的变体它才有用,而struct下部分字段是私有的并不会影响它的使用。

但需要注意的是,枚举类型下的变体是公共的前提条件这个枚举类型被声明为公共的

http://www.yayakq.cn/news/247381/

相关文章:

  • 网站 seo 优化 效果优化设计答案六年级上册语文
  • 杭州网站建设开发好看的主题wordpress
  • 群晖nas可以做网站首钢建设一公司网站
  • 网站开发 法律声明高校网站建设运维体系问题
  • 成都全美网站建设做彩票网站被捉将受到什么惩罚
  • 有网站模板怎么建站做海产品的外贸网站
  • 英语网站海报手抄报怎么做做官网设计好的公司
  • 四川建设厅网站登录不上咋办京山大洪山旅游开发有限公司 做网站
  • 做体彩网站怎么做不用实名认证的好玩游戏
  • 好用的在线设计网站wordpress文章外链调用
  • iapp怎么把网站做软件教育行业手机wap网站
  • 广告网站设计wordpress 子网站重命名
  • 焦作做微信网站多少钱做贸易怎么找客户
  • 口碑好的福州网站建设软文营销把什么放在第一位
  • 信息图制作网站中国建筑集团有限公司天眼查
  • 大连营销型网站建设东莞集团网站建设
  • 朝阳周边网站建设电话销售网站建设话术
  • 建网站空间都有什么平台wordpress多功能模板
  • 免费黄页网站百度网址大全官网旧版
  • 深州市住房保障和城乡建设局网站兰州城市建设学校网上报名网站
  • 做seo用什么网站系统网站建设pqiw
  • 广州市开发区建设局官方网站电子商务网站建设技巧
  • 威海网站建设哪家好网站建设策划实施要素
  • c .net怎么做网站石家庄学院
  • 阿里云wordpress建站教程wordpress cdn注意事项
  • 池州网站网站建设电子系网站建设方案
  • 泊头网站制作郑州即将迎来全面解封
  • 免费建博客网站重庆微信网站作公司
  • 扁平化色彩网站肖港网站开发
  • 手机网站模板制作电子商务网站开发步骤