我正在尝试使用以下命令检查是否从命令行发送了任何ARGS
:
@show ARGS
localARGS = if findfirst(ARGS) == nothing ["arg1", "arg2"] else ARGS end
但是出现以下错误:
错误:LoadError:语法:“ [[]
”中不允许“ [”前的空格
所以,我将其重新编码为:
localARGS = if findfirst(ARGS) == nothing
["arg1", "arg2"]
else
ARGS
end
我遇到一个错误,即:
错误:LoadError:TypeError:布尔值中使用的非布尔值(字符串) 上下文
我也尝试过:
name = (ARGS[1] == nothing ? "arg1" : ARGS[1])
但是出现以下错误:
错误:LoadError:BoundsError:尝试访问0元素 索引为[1]的数组{String,1}
并尝试:
name = isdefined(:ARGS) ? ARGS[1] : "arg1"
但以以下错误结束:
错误:LoadError:ArgumentError:已定义:参数太少 (预计2)
答案 0 :(得分:1)
您可以简单地检查ARGS
变量的长度:
localARGS =
if length(ARGS) == 0
["arg1", "arg2"]
else
ARGS
end
@show localARGS
在Julia 0.6.4和1.0.0中进行了测试。
答案 1 :(得分:1)
我使用compound-expressions找到了这种解决方案,对我来说看起来更干净:
localARGS = ( if isempty(ARGS) ; ["arg1", "arg2"] ; else ARGS ; end )
对于单个ARGS,ternary operator
可以用作:
name = isempty(ARGS) ? "arg1" : ARGS[1]