我有这个朱莉娅脚本:
function f(x,y)
x+y
end
f(3, 4)
Run Code Online (Sandbox Code Playgroud)
当我在实时终端中运行它(通过复制/粘贴)时,我得到了所需的结果 7。但是如果我运行脚本,函数的输出将被抑制。这是为什么?
与 Matlab 不同,Julia 不会自动打印值(REPL 会自动打印值,因为这就是它的用途:REPL =“读取、评估、打印循环”)。您必须使用printor显式打印该值show,例如show(f(3, 4))。在这种情况下,print和show做同样的事情,但一般来说它们有一些不同的含义:
print([io::IO], xs...)向 io(如果未给出 io,则写入默认输出流 stdout)写入规范(未修饰的)文本表示形式。print 使用的表示形式包括最少的格式并尝试避免 Julia 特定的细节。
相对
show(x)将值的信息文本表示形式写入当前输出流。新类型应该重载 show(io::IO, x),其中第一个参数是流。show 使用的表示形式通常包括 Julia 特定的格式和类型信息。
请注意,还有一个@show宏,它打印所计算的表达式及其值,如下所示:
julia> @show f(3, 4);
f(3, 4) = 7
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1357 次 |
| 最近记录: |