如何理解rust的tuple struct


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

rust

干嘛看我的ID 9 years, 7 months ago

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

Shaive answered 9 years, 7 months ago

Your Answer