我认为类型别名与原始类型相同,只是名称不同。
我认为类型别名与原始类型具有相同的引用。
typealias Celsius = Double
fun Double.Companion.foo() {} // Works
fun Celsius.Companion.foo() {} // Does not work
Run Code Online (Sandbox Code Playgroud)
在这里,Companion可以从访问,Double但是Celsius给出了未解决的参考错误。
不,您不能通过类型别名访问伴随对象。一种可能的解决方法,为具体的伴侣创建另一种类型别名:
typealias CelsiusCompanion = Double.Companion
Run Code Online (Sandbox Code Playgroud)
之后,您可以按以下方式使用它:
fun CelsiusCompanion.foo() {}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
591 次 |
| 最近记录: |