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基本使用的主要内容,如果未能解决你的问题,请参考以下文章

2.7 Rust Structs

RUST 0x04 Struct

Rust语言圣经16 - 结构体struct

使用类型`[my_struct]`将C结构数组传递给Rust函数的正确方法?

Rust学习教程16 - 结构体struct

Rust学习教程16 - 结构体struct