手表网站制作照片,wordpress分类文章表格显示,像wordpress之类的框架,wordpress首页缩略图不显示结构体
Rust 中的结构体#xff08;Struct#xff09;与元组#xff08;Tuple#xff09;都可以将若干个类型不一定相同的数据捆绑在一起形成整体#xff0c;但结构体的每个成员和其本身都有一个名字#xff0c;这样访问它成员的时候就不用记住下标了。
元组常用于非定…结构体
Rust 中的结构体Struct与元组Tuple都可以将若干个类型不一定相同的数据捆绑在一起形成整体但结构体的每个成员和其本身都有一个名字这样访问它成员的时候就不用记住下标了。
元组常用于非定义的多值传递而结构体用于规范常用的数据结构。结构体的每个成员叫做字段。
// 引入调试库用于输出结构体
#[derive(Debug)]
struct Person {name: String,age: u8,
}// 结构体 impl 块可以写几次效果相当于它们内容的拼接
impl Person {// 结构体方法fn sayhello(self) {println!(Hello I am {}, {}, self.name, self.age);}// 结构体关联函数, 没有 self 参数, 不依赖实例fn create(name: String, age: u8) - Person {// 当 value 和 key 名称相同, 可简写let p Person { name: name, age };p}
}fn main() {let mut p1 Person::create(Jim.to_string(), 18);p1.age 1;p1.sayhello();// 更新部分, 其余一致let p2 Person {name: Tom.to_string(),..p1};// 使用占位符 {:#?} 或 {:?} 输出结构体 println!({:#?}, p2);
}元组结构
struct Color(i32, i32, i32);let black Color(0, 0, 0);单元类结构
单元类结构是没有任何字段的结构体
struct Unit;
let u Unit;结构数据的所有权
结构体必须掌握字段值所有权因为结构体失效的时候会释放所有字段。这就是为什么本章的案例中使用了 String 类型而不使用 str 的原因。
但这不意味着结构体中不能定义引用型字段这需要通过生命周期机制来实现。但现在还难以说明生命周期概念所以只能在后面章节说明。