当前位置:  开发笔记 > 编程语言 > 正文

在Julia中迭代复合类型的字段

如何解决《在Julia中迭代复合类型的字段》经验,为你挑选了1个好方法。

在Julia中迭代复合(用户定义)类型字段的最佳方法是什么?

比方说,我定义了以下类型并创建了一个实例:

type Foo
    bar
    baz::Int
    qux::Float64
end
foo = Foo("Hello, world.", 23, 1.5)

如何遍历所有字段,例如将字段及其值打印到REPL?我有一个包含多个字段的类型,我不想为每个字段明确命名.谢谢



1> Chris Rackau..:

fieldnames(foo)给你一个Vector{Symbol}名字,并foo.降低到getfield(foo,...).所以你只是:

for n in fieldnames(foo)
   println(getfield(foo,n))
end

这显然不利于性能,因为这里不会发生类型推断(你从字段获取的类型取决于值n).

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有