Kotlin的扩展

我想使用我的自定义类的variables和方法的扩展。 我正在尝试下面的代码,但得到错误

本地扩展属性是不允许的

val Double.km: Double get() = this * 1000 val Double.m: Double get() = this val Double.cm: Double get() = this / 100 val Double.mm: Double get() = this / 1000 val Double.ft: Double get() = this / 3.28084 val oneInch = 25.4.mm println("One inch is $oneInch meters") // prints "One inch is 0.0254 meters" val threeFeet = 3.0.ft println("Three feet is $threeFeet meters") // prints "Three feet is 0.914399970739201 meters" 

如何使用扩展? 我们可以在界面中使用扩展吗?

您必须将这些声明从函数体移到类体。 像错误状态一样,不允许在本地定义扩展属性,而本地扩展方法是可以的。

所以在你的情况下,你可以这样做:

 class MainClass { val Double.km: Double get() = this * 1000 val Double.m: Double get() = this val Double.cm: Double get() = this / 100 val Double.mm: Double get() = this / 1000 val Double.ft: Double get() = this / 3.28084 fun run() { val oneInch = 25.4.mm println("One inch is $oneInch meters") } } 

您可以使用MainClass的扩展属性,而外部使用是不可能的。