我的目标是将IOStream变量传递给 Julia 函数(如果我想写入打开的文件),或nothing(或可能被视为空值或 null 值的其他内容)。原因是我可能会多次调用此函数,并且无论我输入该函数多少次,都希望保持文件句柄打开。如果意图不是写入文件,我会简单地将nothing 指示传递给函数不要尝试写入文件。
我试过声明为:
function f(x, y, f)
Run Code Online (Sandbox Code Playgroud)
并作为:
function f(x, y, f::IOStream)
Run Code Online (Sandbox Code Playgroud)
并作为:
function f(x, y, f::Any)
Run Code Online (Sandbox Code Playgroud)
同时通过在一个变量设置为nothing或IOStream从所得
open("filename.txt", "a")
Run Code Online (Sandbox Code Playgroud)
陈述。在所有情况下,我都会收到某种错误。有没有其他方法可以实现我的目标,还是应该使用不同类型的函数声明/调用?