如何在Julia中编写无返回值且不输出nothing的函数
问题原因
Julia中所有函数默认返回最后一行表达式的执行结果,print、println这类IO操作函数的返回值本身就是nothing,你在交互式环境(REPL)中运行函数时看到的额外nothing输出,是REPL默认打印函数返回值的机制导致的,并非函数主动输出的内容。
Julia不存在完全无返回值的函数,所有函数至少会返回nothing,因此我们只需要抑制返回值的打印即可,不需要强行修改函数的基础返回逻辑。
解决方法
- 方案1:调用时添加末尾分号(最推荐)
无需修改函数定义,只需要在REPL调用函数的语句末尾加;,即可抑制REPL对返回值的打印。
示例代码:
# 你的自定义函数定义 function my_print() println("预期输出的内容") end # 调用时末尾加;即可 my_print();
运行后只会输出你指定的打印内容,不会显示nothing。
- 方案2:显式指定返回值(仅特殊场景使用)
如果你需要修改函数本身的返回逻辑,避免后续其他业务逻辑拿到nothing做处理,可以在函数最后一行显式返回你需要的值,比如如果你想返回打印的字符串,可以写成:
function my_print() content = "预期输出的内容" println(content) return content end
如果你的函数定位就是纯打印无业务返回值,更推荐使用方案1,符合Julia的常规编码习惯。
内容的提问来源于stack exchange,提问作者CHIA YI
相关产品推荐
相关产品推荐

