ちょっと探しても見つからないし,Julia 自体が,変数のタイプがなんなのかは typeof() でわかるんだけど,それに応じて別々の処理をしようとしてもできない。
if typeof(x) == String なんてのができないということ。
そこで,こねくり回して以下のような関数をでっち上げた。
主たる目的は,行列の場合には書式に従って,変数名も一緒にして,綺麗に出力するということだ。変数名を文字列で渡す。
using Printf
function dumplist(argument::String)
ndims(arg::String) = true
value = eval(Meta.parse(argument))
try
nr, nc = size(value)
catch
println("$argument = $value")
return
end
println("----- $argument -----")
nr, nc = size(value)
for i = 1:nr
for j = 1:nc
@printf("%10.5f", value[i, j])
end
print("\n")
end
end
julia> a = [1 2;3 4]; dumplist("a")
----- a -----
1.00000 2.00000
3.00000 4.00000
julia> b = 123.2; dumplist("b")
b = 123.2
julia> c = "string"; dumplist("c")
c = string
julia> d = [1,2,3]; dumplist("d")
d = [1, 2, 3]