Jest to tylko nazwany argument, w przypadku flag jest to boolean. To wszystko działa, ponieważ :pretty
jest cukrem syntaktycznym dla pary :pretty(True)
aka pretty => True
.
Można użyć wartość logiczną
sub format($arg, Bool :$pretty = False) {
if $pretty { ... }
else { ... }
}
lub wykorzystać swoją obecność na wielu wysłania
multi format($arg) { ... }
multi format($arg, Bool :$pretty!) { ... }
W pierwszym przykładzie, pod warunkiem domyślną wartość (co nie jest naprawdę konieczne ponieważ niezdefiniowana wartość burzy się do False
, ale jest to "słuszna rzecz" do zrobienia w znaczeniu semantycznym), w drugim stworzyliśmy wymagany parametr, dodając !
.
Należy również pamiętać, że wymienione argumenty nadal muszą być oddzielone przecinkami, tj chcesz użyć go jako
format :pretty, 'a b c';