扫码阅读
手机扫码阅读
Rust学习笔记(5)- 定义和实例化
477 2023-07-19
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:Rust学习笔记(5)- 定义和实例化
文章来源:
TestOps
扫码关注公众号
定义和实例化
在Rust中,结构体(struct)用于组织相关联的值,每个值通过命名提高可读性。结构体定义和实例化的语法类似于Go语言。例如:
struct User { active: bool, username: String, email: String, sign_in_count: u64, }
实例化结构体时,可以直接赋值给其字段:
let user1 = User { email: String::from("someone@example.com"), username: String::from("someusername123"), active: true, sign_in_count: 1, };
简易形式的结构体赋值
字段名与参数名相同的情况下,可以简写:
fn build_user(email: String, username: String) -> User { User { email, username, active: true, sign_in_count: 1, } }
用一个struct给另一个struct赋值
可以使用结构体更新语法来复用其他实例的字段值:
let user2 = User { email: String::from("another@example.com"), ..user1 };
这种语法允许快速地创建一个新的struct实例,复用部分旧的值,但要注意字段的所有权问题。
tuple struct结构体
Rust也支持tuple struct,它们看起来像是命名的元组:
struct Color(i32, i32, i32); struct Point(i32, i32, i32);
尽管两个tuple struct可能有相同的字段值,它们被视为不同的类型。
空结构体
空结构体不包含任何字段:
struct AlwaysEqual;
关于struct的ownership
通常结构体不包含引用,除非使用生命周期(lifetime)标注。不正确地使用引用会导致编译错误,例如:
struct User { active: bool, username: &str, // 错误:缺少生命周期标注 email: &str, // 错误:缺少生命周期标注 sign_in_count: u64, }
想要了解更多内容?
查看原文:Rust学习笔记(5)- 定义和实例化
文章来源:
TestOps
扫码关注公众号
TestOps的其他文章
当大家都在一本正经讨论健康码怎么做才对的时候,我就笑笑
专业的事情让专业的人来做,而不是头疼医头脚疼医脚
怎样才算完整的接口自动化测试案例
代码 VS 低(零)代码平台你在公司里开展自动化测试,是使用纯代码的方式还是利用已有的低代码或者零代码平台?
《PlayWright全解析——从入门到精通》-2
PlayWright旨在提供一种跨平台、跨语言、跨浏览器,并且能支持移动端浏览器的自动化测试框架。
既然要说点那么就说点狠的吧
如果你还在用传统的方式希望在不改变自己和团队的方式去适应软件交付的问题,那么优秀的(适应性)模式,你就是抄个样子也是抄不会的!
Rust学习笔记(4)-Ownership
OwnershipOwnership是Rust语言所特有的,用于运行时内存管理的一套规则。
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线