使用不同的元组

时间:2015-06-29 15:06:00

标签: tuples nim

如果定义为type BroTuple = distinct tuple[a, b, c: int],我该怎么做:

  • 创建新实例(Brotuple()告诉我Error: object constructor needs an object type

  • 访问其字段(proc example(br: BroTuple) = echo br.a说:Error: undeclared field: 'a'

1 个答案:

答案 0 :(得分:2)

使用一个独特的元组有点奇怪,因为distinct的意图是隐藏你通常会拥有的访问器和触发器。如果您的目标是防止与其他元组/对象的歧义,则应该使用对象。

如果你真的想要它,请到这里:

type BroTuple = distinct tuple[a, b, c: int]

var bro = BroTuple((a: 0, b: 0, c: 0))
echo((tuple[a, b, c: int])(bro).a)