Rust结构体数组怎么写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rust结构体数组怎么写?相关的知识,希望对你有一定的参考价值。

假设有结构体
struct A
x: i32,
y: i32

,那么它的数组怎么写?

参考技术A 需要提一下的是,结构体,元组,数组的成员的析构顺序跟初始化顺序一样,而不是相反。https://github.com/rust-lang/rfcs/blob/master/text/1857-stabilize-drop-order.md 这个规定大家知道就好了,详细内容去读rfc文档。另外我们有很多手段可以手工drop,不使用默认drop顺序。这个顺序具体是什么只有极少数代码需要关注。

Rust 结构体

结构体定义:

struct User {
    username: String,
    email: String,
    sign_in_count: u64,
    active: bool,
}

 这样可以定义一个结构体。

当已有一个结构体User1时:

let user2 = User {
    email: String::from("[email protected]"),
    username: String::from("anotherusername567"),
    ..user1
};

 可以这样把剩余的字段赋值为和user1相同的值。

元组结构体

struct Point(i32, i32, i32);

let origin = Point(0, 0, 0);

 这样便定义了一个元组结构体,在你希望命名一个元组时很有用。

方法

结构体内可以实现方法:

struct Rectangle {
    width: u32,
    height: u32,
}

impl Rectangle {
    fn area(&self) -> u32 {
        self.width * self.height
    }
}

 这样调用:

let rect1 = Rectangle { width: 30, height: 50 };

rect1.area();

 一个impl内可以实现若干方法,一个结构体也可以有多个impl。

关联函数

impl Rectangle {
    fn square(size: u32) -> Rectangle {
        Rectangle { width: size, height: size }
    }
}

 这样调用关联函数:

let sq = Rectangle::square(3);

 

以上是关于Rust结构体数组怎么写?的主要内容,如果未能解决你的问题,请参考以下文章

如何用sort对结构体进行排序

C语言 怎么把文件中的信息储存到结构体数组中

matlab 怎么将374个结构体数据保存在一个数组中?用哪个函数

C语言结构体数组的定义

结构体中定义结构体怎么赋值

C++ 如何将一个静态结构体数组初始化?