class Format
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»