无法链访问元组类型

时间:2015-03-25 08:26:19

标签: rust

假设:

struct NameType([u8;64]);
name: (NameType, NameType);

我能做到:

let def = &name.0   OR   &name.1

但我不能这样做:

let def = &name.0.0   OR   &name.1.0

访问内部。我必须做两次:

let abc = &name.0;
let def = &abc.0;

为什么我无法链接它来访问内部子元组,元组结构等?

rustc 1.0.0-nightly (ecf8c64e1 2015-03-21) (built 2015-03-22)

2 个答案:

答案 0 :(得分:1)

如评论中所述,foo.0.0将被解析为具有数字。这是originally mentioned in the RFC,特别是this

  

我宁愿不改变词法分析器以允许a.0.1。我宁愿让这是一个错误,并让人们写出名字。我们总是可以在以后添加它。

您当然可以提交错误,但作为解决方法,请使用括号:

(foo.0).0

在我看来,你无论如何都不应该嵌套深层次的元组。我强烈建议在你慢慢决定是否想要foo.0.1.2foo.1.2.0之前给字段命名。

答案 1 :(得分:1)

除了上述答案之外,我还发现差距会产生奇迹:)所以;

foo.0. 0  OR  foo.0 . 0 etc all work

很好。不知道它意味着多少但是如果有人想要的话,有一种方法可以将它链接起来(不使用括号)

相关问题