julia - 在脚本中定义时,Julia 函数不打印输出
问题描述
我有这个 Julia 脚本:
function f(x,y)
x+y
end
f(3, 4)
当我在实时终端中运行它时(通过复制/粘贴),我得到了想要的结果 7。但是如果我运行脚本,函数的输出将被抑制。这是为什么?
解决方案
与 Matlab 不同,Julia 不会自动打印值(REPL 会这样做,因为这就是它的用途:REPL = "read, eval, print loop")。您必须使用print
or显式打印值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
推荐阅读
- php - 使用informix(基于SQL)的php查询中的日期格式失败
- javascript - 从装饰器内部更新外部变量
- html - 使用角度 flex-layout 定义换行符
- java - 使用 HttpClient 禁用具有相同客户端的特定请求的重定向
- javascript - 如何使用过滤器方法从数组中返回元素?
- python - 即使在 matplotlib 中的 plt.cla() 之后,如何强制 xlim 永久不变
- javascript - 如何在其实例中读取 ES6 类的静态属性?
- excel - 条件格式不更新表中的应用程序区域(列表对象)
- python - 如何有效地创建嵌套循环并附加所有循环的输出(作为多维数组)?
- java - System.getproperty("spring.profiles.active") 总是在 JPA 实体监听器中获取 Null