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

郑州上街区网站建设公司华夏名网网站管理助手

郑州上街区网站建设公司,华夏名网网站管理助手,寻花问柳-专注做一家男人的网站,抖音关键词查询工具一:结构体定义 定义结构体,需要使用 struct 关键字并为整个结构体提供一个名字。结构体的名字需要描述它所组合的数据的意义。接着,在大括号中,定义每一部分数据的名字和类型,我们称为 字段(field&#xf…

一:结构体定义

定义结构体,需要使用 struct 关键字并为整个结构体提供一个名字。结构体的名字需要描述它所组合的数据的意义。接着,在大括号中,定义每一部分数据的名字和类型,我们称为 字段field

struct User {active: bool,username: String,email: String,sign_in_count: u64,
}

二:结构体实例化

1,常规结构体赋值

下面创建一个结构体实例,并初始化以及给结构体字段赋值

fn main() {let mut user1 = User {email: String::from("someone@example.com"),username: String::from("someusername123"),active: true,sign_in_count: 1,};user1.email = String::from("anotheremail@example.com");
}

注意整个实例必须是可变的;Rust 并不允许只将某个字段标记为可变。另外需要注意同其他任何表达式一样,我们可以在函数体的最后一个表达式中构造一个结构体的新实例,来隐式地返回这个实例

fn build_user(email: String, username: String) -> User {User {email: email,username: username,active: true,sign_in_count: 1,}
}

2,结构体字段初始化简写语法

上面的函数里面结构体初始化有更简便的写法,参数名与字段名都完全相同,我们可以使用字段初始化的简写语法

fn build_user(email: String, username: String) -> User {User {email,username,active: true,sign_in_count: 1,}
}

这里我们创建了一个新的 User 结构体实例,它有一个叫做 email 的字段。我们想要将 email 字段的值设置为 build_user 函数 email 参数的值。因为 email 字段与 email 参数有着相同的名称,则只需编写 email 而不是 email: email

3,结构体更新语法

使用旧实例的大部分值但改变其部分值来创建一个新的结构体实例通常很有用。这可以通过结构体更新语法struct update syntax)实现。

fn main() {// --snip--let user2 = User {active: user1.active,username: user1.username,email: String::from("another@example.com"),sign_in_count: user1.sign_in_count,};
}

上面例子中user2只有一个字段与user1不同,其他的字段可以用user1来赋值,这样在字段少的情况下还可以,但是如果字段多,这样也很繁琐,Rust有更简单的赋值方式

fn main() {// --snip--let user2 = User {email: String::from("another@example.com"),..user1};
}

创建了一个新实例 user2,该实例具有不同的 email 值,但 username、 active 和 sign_in_count 字段的值与 user1 相同。..user1 必须放在最后,以指定其余的字段应从 user1 的相应字段中获取其值,但我们可以选择以任何顺序为任意字段指定值,而不用考虑结构体定义中字段的顺序。

在创建 user2 后不能再使用 user1,因为 user1 的 username 字段中的 String 被移到 user2 中。如果我们给 user2 的 email 和 username 都赋予新的 String 值,从而只使用 user1 的 active 和 sign_in_count 值,那么 user1 在创建 user2 后仍然有效。active 和 sign_in_count 的类型是实现 Copy trait 的类型

4,元组结构体

元组结构体有着结构体名称提供的含义,但没有具体的字段名,只有字段的类型。当你想给整个元组取一个名字,并使元组成为与其他元组不同的类型时,元组结构体是很有用的,这时像常规结构体那样为每个字段命名就显得多余和形式化了。

要定义元组结构体,以 struct 关键字和结构体名开头并后跟元组中的类型。例如,下面是两个分别叫做 Color 和 Point 元组结构体的定义和用法:

struct Color(i32, i32, i32);
struct Point(i32, i32, i32);fn main() {let black = Color(0, 0, 0);let origin = Point(0, 0, 0);
}

注意 black 和 origin 值的类型不同,因为它们是不同的元组结构体的实例。你定义的每一个结构体有其自己的类型,即使结构体中的字段有着相同的类型。例如,一个获取 Color 类型参数的函数不能接受 Point 作为参数,即便这两个类型都由三个 i32 值组成。在其他方面,元组结构体实例类似于元组:可以将其解构为单独的部分,也可以使用 . 后跟索引来访问单独的值,等等。

http://www.dtcms.com/wzjs/596162.html

相关文章:

  • 城市建设的网站 政策法规设计专业招聘信息
  • 大庆工程建设公司网站跨境电商网站平台
  • 木樨园网站建设wordpress密码原理
  • 网站建设共享海南营业执照网上怎么申请
  • 深圳新型材料网站建设加盟创业
  • 普通网站备案wordpress 函数 应用
  • 株洲网站优化找哪家创建公司需要什么条件
  • 织梦 网站名称网站开发书籍推荐
  • 营销网站设计公司排名群辉nas 做网站
  • 青岛建设投资公司网站上海网站备案需要多久
  • 创新创业教育课程网站建设方案自动做网站的ai
  • 沈阳建站模板搭建wordpress 修改语言
  • 大朗网站建设培训宁波企业黄页公司黄页
  • 做外贸哪些网站可以发布产品网站建设是永久使用吗
  • 想开个网站怎么做网站建设优化公司排名
  • 免费ppt成品网站好看的个人网站主页
  • 做消费网站流程试玩平台怎么做网站
  • 现在网站建设需要多少钱折800网站源码
  • 嘉兴网站建设一薇wordpress 伪静态404
  • 网站建设技术实现企业网站开发注册
  • 莱芜公交网站河北网站建设流程
  • 用什么软件来建网站有限责任公司怎么注册
  • 哪个公司网站设计好做物流网站的多少钱
  • 英文公司网站建设wordpress 教程
  • 网易网站开发语言佛山制作网站公司
  • 班级网站 模板ip可以用wordpress
  • 专业网站建设哪家好网络管理系统软件有哪些
  • 淄博网站制作服务推广黄做网站
  • 数码设计网站网页设计教程谁的好
  • 外网工业设计网站龙口建网站首选公司