defaultLazy

inline fun <EachT, ValueT> NullableOption<EachT, ValueT>.defaultLazy(defaultForHelp: String = "", crossinline value: () -> EachT): OptionWithValues<EachT, EachT, ValueT>

If the option is not called on the command line (and is not set in an envvar), call the value and use its return value for the option.

This must be applied after all other transforms. If the option is given on the command line, value will not be called.

You can customize how the default is shown to the user with defaultForHelp. The default value is an empty string, so if you have the help formatter configured to show values, you should set this value manually.

Example:

val opt: Pair<Int, Int> by option().int().pair().defaultLazy { expensiveOperation() }