这与Check if argparse optional argument is set or not的问题基本相同,但在Julia中,使用Julia's ArgParse module。
给定一个带有值的参数,我想知道它的值是否给定。
答案 0 :(得分:5)
简而言之,一旦解析了参数,就可以检查参数是否设置为parsed_args["argname"] == nothing
(如果未设置,则返回true
。) / p>
在下面找到一个自包含的示例(从ArgParse.jl
中修改example1),其中包含2个参数,如果参数不设置,则打印为true(只需替换{{1与==
相反的行为):
!=
示例命令行调用(假设上面存储在using ArgParse
function main(args)
# initialize the settings (the description is for the help screen)
s = ArgParseSettings(description = "Example usage")
@add_arg_table s begin
"--opt1" # an option (will take an argument)
"arg1" # a positional argument
end
parsed_args = parse_args(s) # the result is a Dict{String,Any}
println(parsed_args["arg1"] == nothing)
println(parsed_args["opt1"] == nothing)
end
main(ARGS)
中):
test.jl
但是,有时为参数定义默认值而不是检查它是否已设置可能更合适。可以通过将>>> julia test.jl
true
true
>>> julia test.jl 5
false
true
>>> julia test.jl 5 --opt1=6
false
false
>>> julia test.jl --opt1=6
true
false
关键字添加到参数:
default
以及位置参数的@add_arg_table s begin
"--opt1"
"--opt2", "-o"
arg_type = Int
default = 0
"arg1"
required = true
end
关键字,这会强制用户引入它。