【发布时间】:2021-10-04 00:25:17
【问题描述】:
当我在 Julia 中创建一个函数时,我会在函数中打印一些内容并且不返回任何内容。但结果是函数打印我想要的,也返回“无”。我该怎么做才能使函数只打印我想要的而不返回'nothing'?
【问题讨论】:
当我在 Julia 中创建一个函数时,我会在函数中打印一些内容并且不返回任何内容。但结果是函数打印我想要的,也返回“无”。我该怎么做才能使函数只打印我想要的而不返回'nothing'?
【问题讨论】:
函数总是有返回值。当没有明确的return 语句时,返回函数中最后一个表达式的值。这可能就是您在这里看到的:如果print 语句是您函数的最后一行,因为print 的返回值是nothing,那么它也将成为您函数的返回值。
如果您只是不希望在输出末尾显示nothing,请粘贴您正在使用的导致此行为的代码,我们可以弄清楚如何抑制@987654326 的此输出@ 从出现。
【讨论】:
@sundar 对答案的一些补充评论。
换句话说,nothing 是表示函数没有返回任何内容的值。考虑一下这个 Julia 会议:
julia> function f()
end
f (generic function with 1 method)
julia> res = f()
julia> dump(res)
Nothing nothing
默认nothing显示为空输出:
julia> res
然而,当res 最终插入另一个字符串时,情况会发生变化:
julia> "$res"
"nothing"
对于上述情况,请考虑使用something,例如:
julia> "$(something(res,""))"
""
【讨论】: