检查是否设置了ArgParse可选参数(在Julia中)

时间:2016-03-31 12:07:05

标签: julia argparse.jl

这与Check if argparse optional argument is set or not的问题基本相同,但在Julia中,使用Julia's ArgParse module

给定一个带有值的参数,我想知道它的值是否给定。

1 个答案:

答案 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 关键字,这会强制用户引入它。