【发布时间】:2017-09-18 23:39:02
【问题描述】:
在 C# 中,可以使用 expando 对象在运行时定义具有字段的动态对象。示例:
dynamic contact = new ExpandoObject();
contact.Name = “Patrick Hines”;
contact.Phone = “206-555-0144”;
如您所见,contact 对象是动态的,从某种意义上说,我们可以在对象中设置字段,而无需事先声明对象的结构。我知道在 Julia 中我们可以有一个没有声明类型的参数/变量,如:
function setProp1(obj) obj.prop1=1 end
但是,据我了解,obj 对象必须从具有字段 prop1 的类型创建。如果 prop1 未在某处声明为字段,则 setProp1 无法动态设置字段 prop1。如果我想要充分的活力,并且我不想担心性能,有没有办法在 Julia 中创建“扩展对象”?
【问题讨论】:
-
我希望有一天会创建一个更方便的语法。 la expando 对象的语法可以帮助来自 python 或其他全动态语言的人。
-
@RobertHarvey 您将旧文档(0.4)稳定的一个(现在为 0.6)链接到 -> docs.julialang.org/en/stable/manual/noteworthy-differences(例如,在 0.4 中记录了与 Python 的 12 处差异,而在 0.6 中只有 10 处)请编辑您的评论,我会删除我的:)
标签: julia dynamic-typing