在 ArgParse.jl 中,可以使用 @add_arg_command() 宏和 arg_compose() 函数来实现“computed default value”。
function my_default_value()
# do some computation here to get the default value
return 42
end
arg_compose() 以及 $() 符号来将默认值计算函数与参数组合在一起,例如:@add_arg_command("mycommand"; a = arg_compose(Int, default = $(my_default_value())))
以上代码中,arg_compose() 函数将整数类型 Int 和默认值计算函数 my_default_value() 组合在一起,并作为参数 a 的默认值。
args = parse_args(["mycommand"])
println(args.a) # 打印默认值 42
注意,$() 符号在 @add_arg_command() 宏中必须使用,以便能够正确地计算默认值。
完整示例代码如下:
using ArgParse
function my_default_value()
# do some computation here to get the default value
return 42
end
@add_arg_command("mycommand"; a = arg_compose(Int, default = $(my_default_value())))
args = parse_args(["mycommand"])
println(args.a) # 打印默认值 42