在角色 Rational 中§
有关方法 Bridge 的主要文档,请参阅上下文
method Bridge()
返回转换为 Num
的数字。
在 Int 中§
有关方法 Bridge 的主要文档,请参阅上下文
method Bridge(Int: --> Num)
返回转换为 Num
的整数。
在角色 Real 中§
有关方法 Bridge 的主要文档,请参阅上下文
method Bridge(Real:)
默认实现将调用者强制转换为 Num
,这也是此方法在核心 Real
类型中的行为。此方法主要用于方便用户实现自定义 Real
类型,其中 Bridge
方法返回最能表示自定义 Real
类型的一个核心 Real
类型(不一定是 Num
)。反过来,这使得所有核心运算符和方法都可以获得它们可以使用的值。
例如,我们可以实现一个自定义的 Temperature
类型。它具有度量单位和值,这些是在实例化期间给出的。我们可以实现与此类型一起使用的自定义运算符或转换方法。但是,对于常规的数学运算符,我们可以简单地使用 .Bridge
方法将 Temperature
转换为以一种核心数字类型表示的开尔文温度。
is Realsub postfix:<℃>sub postfix:<℉>sub postfix:<K>my := 36.6℃;my := 451℉;my := 5778K;say ; # OUTPUT: «36.6 degrees C»say + + ; # OUTPUT: «6593.677777777778»say 123K + 456K; # OUTPUT: «579»
从输出的最后两行可以看出,桥接结果的类型并不强制为任何*特定*的核心类型。当我们使用 Rat
实例化 Temperature
或涉及转换时,它是一个 Rat
,而当我们使用 Int
实例化 Temperature
时,它是一个 Int
。
在 Num 中§
有关方法 Bridge 的主要文档,请参阅上下文中的内容
method Bridge(Num:)
返回数字。