如果定义为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'
)
答案 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)