×
Rust教程Rust简介Rust的特点Rust开发环境安装Rust第一个程序

控制语句

Rust if语句Rust if in a let语句Rust loop循环Rust for循环Rust while循环

Rust所有权

Rust所有权Rust引用和借用Rust切片

Rust结构体

Rust结构体Rust结构体更新语法Rust结构体方法语法

Rust枚举

Rust枚举匹配运算符Rust if let控制流程

Rust模块

Rust模块Rust文件系统Rust公开函数Rust use关键字引用模块

Rust集合

Rust向量Rust字符串

Rust错误处理

Rust错误处理Rust不可恢复的错误Rust可恢复的错误

Rust泛型与性状

Rust泛型Rust TraitRust生命周期

Rust智能指针

Rust智能指针Rust Box<T>Rust Deref traitRust Drop trait

Rust结构体


结构体是用户定义的数据类型,由不同数据类型的变量组成。 通过在结构体名称之前使用struct关键字来定义结构体。 结构体成员包含在大括号内。 在大括号内,结构体成员定义了它们的名称和类型,结构成员也称为字段。

结构体语法:

struct Student  
{  
    member-variable1;  
    member-variable2;  
    .  
    .  
}

在上面的语法中,结构体是使用关键字struct定义的。 结构体包含不同类型的变量。

声明结构体的实例 -

let user = Student{  
// key:value pairs;  
}

在上面的声明中,userStudent结构的实例。 它通过使用结构名称然后使用大括号来定义。 大括号包含键:值对,其中键是字段的名称,value是要存储在键字段中的数据。

下面代码创建一个员工结构体:

struct Employee{  
    employee_name : String,  
    employee_id: u64,  
    employee_profile: String,  
    active: bool,  
}

员工结构体实例:

let employee = Employee{  
    employee_name : String::from("Akshay Gupta"),  
    employee_id: 12,  
    employee_profile : String::from("Computer Engineer"),  
    active : true,  
};

如何访问结构体的成员变量?
可以使用点(.)表示法访问结构的特定成员变量。 假设想要访问Employee结构体的employee_name变量,那么可使用以下写法:

employee.employee_name;

注意:如果想通过使用点表示法来更改特定字段的值,那么必须使实例可变,因为Rust不允许特定字段为可变字段。

let mut employee = Employee{  
    employee_name : String::from("Akshay Gupta"),  
    employee_id: 12,  
    employee_profile : String::from("Computer Engineer"),  
    active : true,  
};  
employee.employee_name = String :: from("Akhil Gupta");

在函数体中创建实例:

fn create_employee(name:String, profile:String)  
{  
    Employee{  
        employee_name:name,  
        employee_id:12,  
        employee_profile:profile,  
        active:true,  
    }  
}

在上面的示例中,在函数体中隐式创建了Employee结构体的实例。 create_employee()函数返回具有给定名称和配置文件的Employee结构体实例。

当传递给函数和字段的参数具有相同名称时,使用字段初始化简写。

当变量和字段具有相同的名称时,Rust提供了使用字段初始化简写的灵活性。 不需要重复字段和变量。

 fn create_employee(employee_name:String, employee_profile:String)  
{  
    Employee{  
        employee_name,  
        employee_id:12,  
        employee_profile,  
        active:true,  
    }  
}

在上面的示例中,参数和字段的名称相同。 因此,不需要编写employee_name:employee_name,它可以直接写为employee_name


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)