class Cool - 可以作为字符串或数字互换的值
class Cool is Any { }
我们看下官方文档给出的英文解释:
Value that can be treated as a string or number interchangeably
Cool, 也称为 Convenient OO Loop,是字符串、数字和其他内置类的基类,大多数你可以互换使用。
Cool 中的方法强迫调用者到一个更具体的类型,然后调用该类型的相同的方法。 例如,Int 和 Str 都继承自 Cool,并且在 Int 上调用 substr 方法会首先将整数转换为 Str。
123.substr(1, 1); # '2', same as 123.Str.substr(1, 1)
下面的内置类型继承自 Cool: Array、 Bool、 Complex、 Cool、 Duration、 Map、 FatRat、 Hash、 Instant、 Int、 List、 Match、 Nil、 Num、 Range、 Seq、 Stash、 Str。
下表总结了 Cool 所提供的方法,以及它们所被强制到的类型:
| method | coercion type |
|---|---|
| abs | Numeric |
| conj | Numeric |
| sqrt | Numeric |
| sign | Real |
| rand | Numeric |
| sin | Numeric |
| asin | Numeric |
| cos | Numeric |
| acos | Numeric |
| tan | Numeric |
| tanh | Numeric |
| atan | Numeric |
| atan2 | Numeric |
| atanh | Numeric |
| sec | Numeric |
| asec | Numeric |
| cosec | Numeric |
| acosec | Numeric |
| cotan | Numeric |
| cotanh | Numeric |
| acotan | Numeric |
| sinh | Numeric |
| asinh | Numeric |
| cosh | Numeric |
| acosh | Numeric |
| sech | Numeric |
| asech | Numeric |
| cosech | Numeric |
| acosech | Numeric |
| acotanh | Numeric |
| cis | Numeric |
| log | Numeric |
| exp | Numeric |
| roots | Numeric |
| log10 | Numeric |
| unpolar | Numeric |
| round | Numeric |
| floor | Numeric |
| ceiling | Numeric |
| truncate | Numeric |
| chr | Int |
| ord | Str |
| chars | Str |
| fmt | Str |
| uniname | Str |
| uninames | Seq |
| unival | Str |
| univals | Str |
| uniprop | Str |
| uniprop-int | Str |
| uniprop-str | Str |
| uniprop-bool | Str |
| unimatch | Str |
| uc | Str |
| lc | Str |
| fc | Str |
| tc | Str |
| tclc | Str |
| flip | Str |
| trans | Str |
| index | Str |
| rindex | Str |
| ords | Str |
| split | Str |
| match | Str |
| comb | Str |
| subst | Str |
| sprintf | Str |
| printf | Str |
| samecase | Str |
| trim | Str |
| trim-leading | Str |
| trim-trailing | Str |
| EVAL | Str |
| chomp | Str |
| chop | Str |
| codes | Str |