首页 > 如何理解rust的tuple struct

如何理解rust的tuple struct

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


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也一样。

【热门文章】
【热门文章】