给定复合类型的Julia对象,如何确定其字段?

如果您正在REPL中工作,我知道一个解决方案:首先,您通过调用typeof来确定对象的类型,然后进入帮助模式(?),然后查找类型。有没有更多的编程方式来实现同一目标?

最佳答案

适用于v0.7 +

使用fieldnames(x),其中xDataType。例如,使用fieldnames(Date)而不是fieldnames(today()),否则使用fieldnames(typeof(today()))

这将返回Vector{Symbol},依次列出字段名称。

如果字段名称是myfield,则使用getfield(x, :myfield)或快捷方式语法x.myfield来检索该字段中的值。

另一个有用的相关功能是dump(x)

v0.7之前的版本

使用fieldnames(x),其中x是您感兴趣的复合类型的实例,或者是DataType。也就是说,fieldnames(today())fieldnames(Date)是同等有效的,并且具有相同的输出。

08-03 15:19