【发布时间】:2016-07-10 07:38:44
【问题描述】:
我尝试从 julia 中的自定义类型分配多个元素。但是我不知道该怎么做。或者换句话说,我想重载赋值运算符以返回类型中包含的所有元素的元组。
这是所需的行为:
type foo
a
b
end
(a,b) = foo(1,2)
a
> 1
这是错误信息:
ERROR: LoadError: MethodError: `start` has no method matching start(::foo)
我的看法是我需要实现某种迭代器来处理分配,但我不知道该怎么做。
编辑
我实现了“start()、done()、next()”函数。现在我担心如何仍然允许我分配类型而不是它的元素。
写作:
a, b = foo(1,2)
a
# returns
> 1
然而:
a = foo(1,2)
a
# returns
> foo(1,2)
这太棒了。因此,朱莉娅认识到,在 等式的左侧 (lhs) 将返回右侧的类型,并且 lhs 上有“n”个元素将从 类型。因此,如果要分配整个类型,则必须将类型分配给 lhs 上的单个元素。就是这样。
【问题讨论】: