rust struct基本使用
Posted 北漂-boy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rust struct基本使用相关的知识,希望对你有一定的参考价值。
1、定义
fn main() {
let user = User{
name: String::from("yjt"),
xz: 17000.0,
age: 27,
jw: false
};
println!("{}",user.age)
}
struct User{
name: String,
xz: f64,
age: u8,
jw: bool,
}
2、struct的更新语法
fn main() {
let mut user = User{
name: String::from("yjt"),
xz: 17000.0,
age: 27,
jw: false
};
let user1 = User{
name: String::from("yj"),
xz: 12000.0,
..user // 这里就是struct的更新语法,使用user这个实列的值来填充user1后面的两个属性
};
println!("{}",user.age)
}
struct User{
name: String,
xz: f64,
age: u8,
jw: bool,
}
3、struct tuple
fn main() {
let color = Color(0,1,2);
let point = Point(11,12,13);
println!("{},{}",color.0,point.0);
println!("{:?}",color); // 由于自定义的类没有实现Display这个trait,所以打印的时候使用:?或者:#?来规避
println!("{:#?}",point);
}
#[derive(Debug)] // 由于Color没用实现Debug这个trait,所以使用#[derive(Debug)]来规避,其实真正的是让Color派生与Debug这个trait,derive表示派生,这个就类似于scala语言里面的trait了
struct Color(i32,i32,i32); // 定义struct tuple
#[derive(Debug)]
struct Point(i32,i32,i32); // 与上面这个struct tuple是不同的
4、unit-like-struct
以上是关于rust struct基本使用的主要内容,如果未能解决你的问题,请参考以下文章