Rust 结构体

定义结构体

  • 核心是 struct 关键字
  • 定义结构体的语法如下:
struct 结构体名 {
    字段名: 字段类型,
    字段名: 字段类型,
    ...
}
// 定义结构体
struct Student {
    name: String,
    age: u8,
}

// 定义结构体的方法
impl Student {
    fn new(name: String, age: u8) -> Self {
        Self {
            name,
            age,
        }
    }
}

let student = Student::new("张三".to_string(), 18);
// 访问结构体的字段
println!("姓名: {}", student.name);
println!("年龄: {}", student.age);

// 定义结构体的方法
impl Student {
    fn get_name(&self) -> &str {
        &self.name
    }
}

// 调用结构体的方法
let name = student.get_name();
println!("姓名: {}", name);

// 定义结构体的方法
impl Student {
    fn get_age(&self) -> u8 {
        self.age
    }
}

// 调用结构体的方法
let age = student.get_age();
println!("年龄: {}", age);

基础使用

// 定义结构体
struct Student {
    name: String,
    age: u8,
}

let student = Student {
    name: "张三".to_string(),
    age: 18,
};

// 访问结构体的字段
println!("姓名: {}", student.name);
println!("年龄: {}", student.age);
  • C 语言中的结构体使用
#include <stdio.h>
#include <string.h>

struct Student {
    int age;
    string name;
};

// 定义结构体的方法
void Student_get_name(struct Student *self) {
    printf("姓名: %s", self->name);
}

int main() {
    struct Student student;
    student.age = 18;
    strcpy(student.name, "张三");
    Student_get_name(&student);
    return 0;
}