如何理解rust的tuple struct
新手刚刚接触rust,在看官方文档的时候,有一节是说tuple struct和只有一个元素的tuple struct,newtype pattern,但觉得官方手册给的例子不太详细,不太能理解,求大神,能给一个详细一点解释和实例
干嘛看我的ID
9 years, 7 months ago
Answers
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