Julia 显示自定义类型构造时自动运行的方法
每次调用自定义类型的构造函数时,该类型的Julia 显示自定义类型构造时自动运行的方法,julia,Julia,每次调用自定义类型的构造函数时,该类型的show方法都会运行。我不明白为什么。可重复的示例如下: 我有一个模块: module ctbTestModule1 import Base.show export MyType1 type MyType1 function MyType1() new() end end function show(io::IO, a::MyType1) println("hello world") end end
show
方法都会运行。我不明白为什么。可重复的示例如下:
我有一个模块:
module ctbTestModule1
import Base.show
export MyType1
type MyType1
function MyType1()
new()
end
end
function show(io::IO, a::MyType1)
println("hello world")
end
end
我在REPL中打开一个新的julia会话并键入:
using ctbTestModule1
z = MyType1()
当我运行行z=MyType1()
时,以下内容会打印到控制台:
这里如何调用show
方法?它显然不会在内部构造函数中调用…REPL(Read evaluate print循环)计算并打印每条语句
你所描述的是通常的行为
在REPL中运行z=1
,打印输出将为1
同样,您的z
是一个MyType1
,显示为hello world
如果要抑制REPL中的输出,请使用分号完成语句代码>:
z = MyType1();
因此,为了回答您的问题:是的,如果您在REPL中创建了一个类型的实例,则通过调用该类型的show()函数来显示结果。是的,您完全正确。我不知道我脑子里在想什么。不知何故,我混淆了REPL中的语句和函数内部的语句。谢谢你温柔地让我失望:-)
z = MyType1();