我认为类型别名与原始类型相同,只是名称不同。
我认为类型别名与原始类型具有相同的引用。
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 次 |
最近记录: |