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

建设企业网站登录入口济宁网站开发招聘

建设企业网站登录入口,济宁网站开发招聘,wordpress企业主题 教程,集趣网站怎么做兼职格式及语法 在其他很多编程语言中,有类(Class)的存在,在Rust中,我们没有类(Class)的概念,我们使用结构体(Struct)。 与一个结构体相关的有以下几个部分: 数据字段方法关联函数 声明一个结构体及其字段的格式如下&am…

格式及语法

在其他很多编程语言中,有类(Class)的存在,在Rust中,我们没有类(Class)的概念,我们使用结构体(Struct)。
与一个结构体相关的有以下几个部分:

  • 数据字段
  • 方法
  • 关联函数

声明一个结构体及其字段的格式如下:

pub struct RedFox {enemy: bool,life: u8,
}

struct关键词开头,后面紧跟结构体的名称(以大写字母开头的驼峰式命名),大括号中是结构体的数据字段,每个字段由字段名称及它的类型声明组成, 字段间用,分隔。

最后一个字段后面也可以加上,, 并且我们推荐大家这样做,以防在以后添加新字段时忘记在前面的字段后添加,

正如我们在前面的章节中提到的, Rust中的函数默认都是私有的,结构体也是一样, 如果想在别的模块中使用结构体,需要加上pub标识:

pub struct RedFox {enemy: bool,life: u8,
}

结构体的字段默认也是私有的,默认只能在结构体被定义的模块内被访问, 如果想在结构体被定义的模块之外访问结构体的字段,则需要将该字段也标识成pub:

pub struct RedFox {pub enemy: bool,life: u8,
}

结构体的数据字段本身也可以是一个结构体:

pub struct RedFox {enemy: bool,life: u8,profile: Profile,
}struct Profile {name: String,age: u8,
}

结构体关联函数与方法

实例化一个结构体时,我们需要为这个结构体的每个字段都指定一个值。 一般来说,我们会为结构体实现一个关联函数,作为结构体的构造函数来创建一个具有默认值的结构体实例:

struct RedFox {enemy: bool,life: u8,
}impl RedFox {fn new() -> Self {Self {enemy: true,life: 70,}}
}

结构体的方法和关联函数在一个叫impl的代码块中实现,与结构体的定义是不同的代码块。这个代码块以impl开头, 后面紧跟结构体的名称, 然后在其后的大括号中, 实现结构体的方法和关联函数。

上述代码中的fn new() -> Self被称为结构体的关联函数,因为它没有使用self&self作为其第一个参数。 这样的函数在一些其他语言(如Python)中被称为类方法,可以直接通过类名而不是类的实例调用。

在Rust中, new函数是我们约定俗成的一个关联函数,用于创建一个具有默认值的结构体实例。在结构体的方法或关联函数中, 首字母大写的Self等价于结构体的名称本身, 因此上面的关联函数也可以这样写:

impl RedFox {fn new() -> RedFox {RedFox {enemy: true,life: 70,}}
}

但我们更推荐使用Self

结构体方法也是在impl代码块中进行实现的, 与关联函数不同的是,结构体方法总是以self&self&mut self作为第一个参数。

impl RedFox {// 关联函数fn function() ...// 方法fn move(self) ...fn borrow(&self) ...fn mut_borrow(&mut self) ...
}

关联函数可以直接通过结构体名称调用, 而方法只能通过结构体的示例调用。

实例化结构体

let fox = RedFox::new();

上面的代码会创建一个具有默认值的RedFox结构体。注意Rust中的作用域操作符是::, 我们使用它来访问类似命名空间中的部分内容。例如在前面的章节中, 我们在use语句中也使用了::来访问模块中的函数。在这个例子中,我们则是使用::来访问一个结构体的关联函数。

一旦我们有了一个实例,我们就能像在大多数语言一样,通过这个实例,使用.操作符来获取或设置特定字段的值,或者调用方法。

let fox = RedFox::new();
let life_left = fox.life;
fox.enemy = false;
fox.some_method();

小结

本章我们介绍了Rust中的结构体的定义及其关联函数与方法的使用,下一章将介绍Rust中另一个非常重要的概念, Trait。

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

相关文章:

  • 网站做优化有什么好处沈阳做网站有名公司有哪些
  • 中建南方建设集团网站四川建设人才官方网站
  • moodle网站建设北京建设网站合同下载
  • 住房住房和城乡建设部网站wordpress 三主题公园
  • 只做PC版网站网站项目报价单模板
  • 佛山网站优化运营闸北区网站建设网页
  • WordPress来必力网站品牌词优化怎么做
  • 成都网站建设公司排行wordpress 运行效率
  • 导购网站 icp备案要求万网注册的网站长时间不能访问是不是被封了
  • 6.网站开发流程是什么wordpress 刷新缓存
  • 怎么看网站服务器地址北京南站到故宫最佳路线
  • 广州网站设计培训哪个平台做网站比较好
  • php网站插件删除或添加qq怎么分享wordpress
  • 中国机械网站wordpress 批量发布器
  • cms做淘宝客网站人像摄影网站有哪些
  • 西安设计网站的公司软件项目管理包括哪些内容
  • 南昌网站建设好么做班级网站的目的
  • 网站建设对网络营销的影响seo的目的是什么
  • 石家庄市建设局质监站网站物理结构网站
  • 长尾关键词挖掘爱站工具昆山新意建设咨询有限公司网站
  • 做非法网站怎么盈利常用的网站开发
  • 做电商排名网站wordpress蜜蜂采集
  • 挂号网站制作网络推广软件赚钱
  • 做企业网站的tklink的登录做网站
  • 网站开发公司哪家最强公司做网站找谁公司做网站找谁
  • 黄冈网站建设的方案网络营销推广目的
  • 网站设计论文总结七色鱼设计平台
  • 建设网站职业证书抖音代运营机构常州
  • 网站推广应该怎么做?做网站每一年都要交钱吗
  • 手机网站建设价格低网站竞争对手如何做调研