julia - show() 是返回结构的 String 表示的正确方法吗?

标签 julia tostring

C#Java 中,我们有 toString() 方法来返回一个 String 表示对象。

我在 Julia 中看到的最接近的是 show() ,但我不完全确定它是否是正确的函数。

struct Person
   name::String
   age::Int32
end

amber = Person("Amber",22) 
println(amber) # Output: Person("Amber", 22)

如果我想对返回的 String 有更多的控制,我可以这样做:

function Base.show(io::IO, person::Person)
    return "Name: $(person.name) Age: $(person.age)"
end

println(show(amber)) # Output: Name: Amber Age: 22

我每次都必须直接调用 show() 吗?我可以将它传递给 println() 并让它调用 show() 吗?在 C#Java 中,如果 toString() 被覆盖,Console.writeLine()System .out.println() 会调用toString(),不需要直接调用。

最佳答案

这在 Julia 中是一样的:

julia> struct Person
          name::String
             age::Int32
       end

julia>

julia> amber = Person("Amber",22)
Person("Amber", 22)

julia> Base.show(io::IO, person::Person) = println("Name: $(person.name) Age: $(person.age)")

julia> amber
Name: Amber Age: 22

这个问题接近于重复:

How to overload Base.show for custom array types?

关于julia - show() 是返回结构的 String 表示的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72562505/

相关文章:

java - 如何在不同实现/类/等的java中调用toString()

julia - 当我需要 i、j、k 时如何迭代整个数组?

julia - 为什么负一 (-1) 提升为偶数次幂,在 Julia 中总是返回相同的结果?

Jquery 不将 var 打印为字符串

java - ToString() 方法无法编译

Java ArrayList 帮助!

julia - 在 Julia 中编写用于传递 GroupedDataFrame 的函数方法

csv - 在没有行尾标记的情况下在 Julia 中读取 csv

julia - 在 Jupyter 笔记本的 Julia 内核中调整图的大小

java - 反转(解析输出)Arrays.toString(int[])