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

检查是否设置了ArgParse可选参数(在Julia中),julia,argparse.jl,Julia,Argparse.jl,这个问题本质上与:,相同,但在Julia中,使用 给定一个接受值的参数,我想知道它的值是否给定。简而言之,解析完参数后,可以检查参数是否设置为parsed_args[“argname”]==nothing(如果参数未设置,则返回true) 下面是一个自包含的示例(从ArgParse.jl明显修改而来),其中包含两个参数,如果参数未设置,则会打印为true(对于相反的行为,只需将=替换为!=): 和示例命令行调用(假设上面存储在test.jl): 但是,有时为参数定义默认值可能比检查是否已设置更

这个问题本质上与:,相同,但在Julia中,使用


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

简而言之,解析完参数后,可以检查参数是否设置为
parsed_args[“argname”]==nothing
(如果参数未设置,则返回
true

下面是一个自包含的示例(从
ArgParse.jl
明显修改而来),其中包含两个参数,如果参数未设置,则会打印为true(对于相反的行为,只需将
=
替换为
!=
):

和示例命令行调用(假设上面存储在
test.jl
):


但是,有时为参数定义默认值可能比检查是否已设置更合适。可以通过向参数添加
default
关键字来完成:

@add_arg_table s begin
    "--opt1"
    "--opt2", "-o"
        arg_type = Int
        default = 0
    "arg1"
        required = true
end

以及位置参数所需的
关键字,这将迫使用户引入它。

简而言之,解析参数后,可以检查参数是否设置为
parsed_args[“argname”]==nothing
(如果未设置,则返回
true

下面是一个自包含的示例(从
ArgParse.jl
明显修改而来),其中包含两个参数,如果参数未设置,则会打印为true(对于相反的行为,只需将
=
替换为
!=
):

和示例命令行调用(假设上面存储在
test.jl
):


但是,有时为参数定义默认值可能比检查是否已设置更合适。可以通过向参数添加
default
关键字来完成:

@add_arg_table s begin
    "--opt1"
    "--opt2", "-o"
        arg_type = Int
        default = 0
    "arg1"
        required = true
end

以及位置参数的
必需的
关键字,这将强制用户引入它。

如果参数有默认值,我可以知道它是否已传递吗?@becko您可以将其与默认值进行比较。。。但是,如果用户准确地引入了默认值,我无法找到区分这两种情况的方法。如果参数有默认值,我能知道它是否被传递吗?@becko你可以将它与默认值进行比较。。。但是如果用户准确地引入了默认值,我就无法找到区分这两种情况的方法。
@add_arg_table s begin
    "--opt1"
    "--opt2", "-o"
        arg_type = Int
        default = 0
    "arg1"
        required = true
end