role QuantHash does Associative { }
The QuantHash
role provides the basic functionality shared by the Setty
, Baggy
and Mixy
roles. These provide object hashes whose values are limited in some way.
QuantHashes
are what set operators use internally.
Methods§
method hash§
method hash()
Coerces the QuantHash
object to a Hash
(by stringifying the objects for the keys) with the values of the hash limited to the same limitation as QuantHash
, and returns that.
method Hash§
method Hash()
Coerces the QuantHash
object to a Hash
(by stringifying the objects for the keys) without any limitations on the values, and returns that.
method Map§
method Map()
Available as of the 2021.02 release of the Rakudo compiler.
Coerces the QuantHash
object to a Map
(by stringifying the objects for the keys) without any limitations on the values, and returns that.
method of§
method of()
Returns the type of value a value of this QuantHash
may have. This is typically Bool
for Setty
, UInt
for Baggy
or Real
for Mixy
roles.
method keyof§
method keyof()
Returns the type of value a key of this subclass of QuantHash
may have. This is typically Mu
, which is also the default for punned QuantHashes.
method Capture§
method Capture()
Returns the object as a Capture
by previously coercing it to a Hash
.
method list§
multi method list(QuantHash:D:)
Returns a list of Pair
objects of all keys and values in the QuantHash.
method Setty§
method Setty(--> Setty:D)
Coerce the QuantHash
object to the equivalent object that uses the Setty
role. Note that for Mixy
type coercion items with negative values will be skipped.
my %b is Bag = one => 1, two => 2; say %b.Setty; # OUTPUT: «Set(one two)» my %m is Mix = one => 1, minus => -1; say %m.Setty; # OUTPUT: «Set(one)»
method Baggy§
method Baggy(--> Baggy:D)
Coerce the QuantHash
object to the equivalent object that uses the Baggy
role. Note that for Mixy
type coercion items with negative values will be skipped.
my %s is Set = <one two>; say %s.Baggy; # OUTPUT: «Bag(one two)» my %m is Mix = one => 1, minus => -1; say %m.Baggy; # OUTPUT: «Bag(one)»
method Mixy§
method Mixy(--> Mixy:D)
Coerce the QuantHash
object to the equivalent object that uses the Mixy
role.
my %s is Set = <one two>; say %s.Mixy; # OUTPUT: «Mix(one two)» my %b is Bag = one => 1, two => 2; say %b.Mixy; # OUTPUT: «Mix(one two(2))»