如何理解rust的tuple struct

发布于 2022-09-01 06:11:42 字数 123 浏览 14 评论 0

新手刚刚接触rust,在看官方文档的时候,有一节是说tuple struct和只有一个元素的tuple struct,newtype pattern,但觉得官方手册给的例子不太详细,不太能理解,求大神,能给一个详细一点解释和实例

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

在风中等你 2022-09-08 06:11:42

tuple type没有名字,它的元素也没有名字
struct type有名字,它的元素也有名字
tuple struct type有名字,它的元素没有名字
一般而言tuple struct没有struct有用,因为大多数情况下元素有个名字总是好的,但是在Rust中,你没办法直接用一个已有的type创建一个新type,比如说你不能直接用已有的u8类型创建一个新的new_u8类型,当然你可以用struct包一层,比如struct new_u8{value:u8},但里面的那个元素名value其实一点用没有,所以此时用tuple struct就刚好,比如

struct new_u8(u8);
let some_var=new_u8(10);

如果你要取出起作用的那个匿名元素,可以用destructuring let或pattern match,比如:

let new_u8(some_other_var)=some_var;
assert_eq!(some_other_var, 10);

说到底这东西就是个语法糖,搞不明白的话只用tuple和struct也一样。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文