Rust中的结构体
因为学Rust的同学基本都是从C/C++过来的,所以对于Rust中的结构体就不用讲得太细了,因为基础内容都是差不多的,只是有一些地方会有小小的区别。
在前面数据类型的时候介绍过元组,在C++的泛型那块也有元组的出现,如果要追溯到C语言的层次的话,结构体才是复杂数据类型的鼻祖。在复杂数据类型这块,一切都是从C开始演化过来的,包括像C++的类,Java的类也是从C语言的结构体开始。到了Rust中,结构体的样子也是差不多的,语法上比较贴近C语言,因为它把成员函数(在Rust中称为关联函数或方法,这些叫法不重要,重要的是它所表达的意思)这些都通通放到impl中,从struct关键字开始看,有股浓浓的C语言的味道。
结构体的声明
struct User {
active: bool,
username: String,
email: String,
sign_in_count: u64,
}
对应C语言的风格
struct User {
//C语言中没有bool和String,但是知道类型是放在前面这个意思就行了
bool active,
String username,
String email,
unsigned long sign_in_count
}; //C语言中,这里分号是不能漏的
结构体的访问也是采用 ‘.’ 加成员的方式访问。
struct User {
active: bool,
username: String,
email: String,
sign_in_count: u64,
}
fn main() {
let cukor = User {
//Rust的结构体初始化也挺别致的
active: true,
username: String::from(