【问题标题】:Is there a way to print without datatype info in Julia?有没有办法在 Julia 中打印没有数据类型信息?
【发布时间】:2017-09-21 18:44:18
【问题描述】:

例如:

julia> print([1,"2"]) 

Any[1, "2"]

我期待 [1, "2"] 成为控制台输出

这对于复杂的数据类型来说变得很丑。

【问题讨论】:

  • 你可能想使用@printf
  • 我猜不可能避免使用@printf 涉及数据类型。如果不是,你能举个例子吗?
  • 你可以试试print("[" * join(map(repr, [1,"2"]), ", ") * "]")

标签: julia base


【解决方案1】:

您可能会使用这种丑陋的解决方法:

import Base.show
import Base.repr

function show(io::IO, a::Array{Any,1})
  print("[")
  first = true
  for i in a
    print(first ? "":",", repr(i))
    first = false 
  end
  print("]")
end

function repr(a::Array{Any,1})
  ret = "["
  first = true
  for i in a
    ret *= (first ? "":",") * repr(i)
    first = false 
  end
  ret *= "]"
end


julia> print([1,"2"])
[1,"2"]

julia> print([1,"2","t", [1,"2"]])
[1,"2","t",[1,"2"]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 2018-08-06
    • 2017-03-18
    • 1970-01-01
    • 2011-03-21
    • 2015-02-06
    • 1970-01-01
    相关资源
    最近更新 更多