JuliaのPythonのgetattr()に相当するものは何ですか?次のメタプログラミングコードを試しましたが、関数スコープ内ではなく、グローバルスコープでのみ動作します。Juliaのgetattr()に相当するもの
type A
name
value
end
a = A("Alex",1)
for field in fieldnames(a)
println(eval(:(a.$field)))
end
これは、プリントアウトします:
:Alex
1
をしかし、上記の関数のスコープ内にある場合、それはエラーがある
function tmp()
a = A("Alex",1)
for field in fieldnames(a)
println(eval(:(a.$field)))
end
end
tmp()
を動作しません。
ERROR: LoadError: UndefVarError: a not defined
編集: 質問にお答えいただき、ありがとうございます。 Juliaのドキュメントへのリンクは、getfieldとsetfield!です。
ありがとうございました! Juliaのドキュメント(http://docs.julialang.org/en/release-0.4/stdlib/base/?highlight=getfield#Base.getfield)からgetfield()へのリンクを追加します。 – Steven