在数组中§
有关方法,请参阅上下文中的主要文档
method of()
返回调用者的值的类型约束。默认情况下,即如果在声明期间未给出类型约束,该方法将返回(Mu)
。
my = 1, 'two', 3.14159; # (no type constraint specified)say .of; # OUTPUT: «(Mu)»my Int = 1, 2, 3; # (values must be of type Int)say .of; # OUTPUT: «(Int)».push: 'd';CATCH ;# OUTPUT: «X::TypeCheck::Assignment: Type check failed in assignment to @a2; expected Int but got Str ("d")»
在哈希中§
有关方法,请参阅上下文中的主要文档
method of(Hash:)
返回调用者的值的类型约束。默认情况下,即如果在声明期间未给出类型约束,该方法将返回(Mu)
。
my = 'apples' => 3, 'oranges' => 7; # (no type constraint specified)say .of; # OUTPUT: «(Mu)»my Int = 'oranges' => 7; # (values must be of type Int)say .of; # OUTPUT: «(Int)»
在关联角色中§
有关方法,请参阅上下文中的主要文档
method of()
如上所示,Associative
实际上是一个参数化角色,它可以使用不同的类作为键和值。正如在文档顶部所看到的,默认情况下,它将键强制转换为Str
,并为值使用非常通用的Mu
。
my ;say .of; # OUTPUT: «(Mu)»
当使用特定类实例化Associative
时,值是您使用的第一个参数
is Hash does Associative[Cool,DateTime] ;my := DateHash.new;say .of; # OUTPUT: «(Cool)»
在标量中§
有关方法,请参阅上下文中的主要文档
method of(Scalar: --> Mu)
返回容器的类型约束。
示例
my Cool = 42;say .VAR.of; # OUTPUT: «(Cool)»
在变量中§
有关特征,请参阅上下文中的主要文档
multi trait_mod:<of>(Mu , Mu )
设置绑定到变量的容器的类型约束。
my of Int = 42;= "forty plus two";CATCH# OUTPUT: «X::TypeCheck::Assignment Type check failed in assignment to $i; expected Int but got Str ("forty plus two")»
您可以在编译时定义的任何值中使用类型约束,包括常量
constant \T = Int;my of T = 42;
这将等同于前面的定义。
在位置角色中§
有关方法,请参阅上下文中的主要文档
method of()
返回位置容器元素的类型约束,即上面定义中的T
,如您所见,默认为Mu
。它作为类型对象返回。
my ;say .of.^name; # OUTPUT: «Mumy Str ;say .of.raku; # OUTPUT: «Str»say (my int @).of; # OUTPUT: «(int)»
在定量哈希角色中§
有关方法,请参阅上下文中的主要文档
method of()
返回此QuantHash
的值可能具有的值类型。对于Setty
,这通常是Bool
,对于Baggy
,这通常是UInt
,对于Mixy
角色,这通常是Real
。
在代码中§
请参阅 上下文中的 method of 的主要文档
method of(Code: --> Mu)
返回 Code
的 返回类型约束
say -> () --> Int .of; # OUTPUT: «(Int)»