rust结构体

限于喜欢 提交于 2019-12-06 10:00:24
 //Rust 并不允许只将某个字段标记为可变
 struct User {
        email: String,
        name:String,
        age:i32,
        sex:String,
        active:bool,
 }
fn main() {
    
    let mut user1=User{
        email: String::from("1@qq.com"),
        name:String::from("hehe"),
        age:23,
        sex: String::from("man"),
        active:true,
    };
    user1.name =String::from("zhangsan");

    let user2 = User {
        email: String::from("3@qq.com"),
        name: String::from("lisa"),
        ..user1 //其余值来自 user1 变量中实例的字段,简写形式
    };

    let user3=set_user_value(String::from("2@qq.com"),String::from("xiaohong"));

}

fn set_user_value(email:String,name:String)->User {
    //参数名和结构体的名字相同时,可简写比如email:email 可以直接写email,
    User {
        email,
        name,
        age:23,
        sex:String::from("man"),
        active:true,
    }
}

User 结构体的定义中,我们使用了自身拥有所有权的 String 类型而不是 &str 字符串 slice 类型。
这是一个有意而为之的选择,因为我们想要这个结构体拥有它所有的数据,为此只要整个结构体是有效的话其数据也是有效的。
可以使结构体存储被其他对象拥有的数据的引用,不过这么做的话需要用上 生命周期(lifetimes)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!