class Format { }
A Format
is an immutable object containing the logic for converting a set of values to a string given a sprintf
compatible format specification. Acts as a standard string in every way, except that it can also be called as a Callable
with arguments to produce a string, just as sprintf
.
Available as of the 2023.06 release of the Rakudo compiler. Requires language level 6.e
.
use v6.e.PREVIEW; my $f = Format.new("'%5s'"); say $f; # OUTPUT: «'%5s'» say $f("foo"); # OUTPUT: «' foo'»
Methods§
method new§
method new($format --> Format:D)
Creates a new Format
object from a sprintf
compatible format string.
use v6.e.PREVIEW; my $d = Format.new("%05d"); say $d; # OUTPUT: «%05d» say $d(42); # OUTPUT: «00042»
method Callable§
method Callable(--> Callable:D)
Returns the Callable
that was created from the given format. Intended for introspection purposes only, as one can call the Format
object directly.
method directives§
method directives(--> List:D)
Returns a list of the directives seen in the given format. Intended for introspection purposes.
use v6.e.PREVIEW; my $d = Format.new("%05d%3x:%s"); say $d.directives; # OUTPUT: «(d x s)»
method arity§
method arity(--> List:D)
Returns the minimal number of positional arguments that is needed for this format. Intended for introspection purposes.
use v6.e.PREVIEW; my $d = Format.new("%05d%3x:%s"); say $d.arity; # OUTPUT: «3»
method count§
method count(--> List:D)
Returns the maximal number of positional arguments that is needed for this format. Intended for introspection purposes.
use v6.e.PREVIEW; my $d = Format.new("%05d%3x:%s"); say $d.count; # OUTPUT: «3»