具名结构体每个成员都有个名字,类元组结构体按顺序给成员编号,空结构体没有任何成员,这不常用,但是比你想的有用。
按照rust的规范,所有类型包括结构体按大驼峰命名,属性和方法按小写蛇型命名。
你可以通过结构体表达式构造一个结构体。结构体表达式以结构体名称开始,用大括号包住键值对。也可以像es6那样省略值,只给出名称,值为和名称一样的变量。
访问结构体成员用点操作符。
结构体默认是私有的,对模块外的代码不可见,可以加pub关键字声明成公有的。结构体的成员也一样,默认私有。即使结构体声明成公有的,它的成员也可以是私有的,其他模块可以用它和它的公有成员,但是不能访问它的私有成员,也不能用结构体表达式创建一个结构体,也就是说通过结构体表达式创建结构体需要它的所有成员都是公有的。这就是为什么你不能通过结构体表达式构造字符串和向量,它们都是结构体类型,但是它们的成员是私有的,你必须通过公有的::new()静态函数来创建。
当创建一个具名结构体,你可以用相同类型的其他结构体来提供省略的成员。在结构体表达式中,假如具名结构体跟着..加一个表达式,那么没有提供值的成员都会从表达式中获取,表达式的结果必须是相同类型的结构体。
