如何从相同签名的方法或扩展函数调用顶层函数?
我使用kotlin 1.1.2-2
我想从方法Mul2.plus100(Int):Int
调用顶级函数Mul2.plus100(Int):Int
。 我试图在下面的代码中做到这一点,但实际上Mul2.plus100
本身被称为。
class Mul2 { fun plus100(v: Int): Int = plus100(2 * v) } fun plus100(v: Int): Int = v + 100 fun main(args: Array<String>) { val v = Mul2() println(v.plus100(10)) // expected: "120", actual: StackOverflowError }
有没有plus100
从Mul2.plus100
访问Mul2.plus100
?
你可以使用函数所在的包来引用它:
package pckg fun plus100(v: Int): Int = v + 100 class Mul2 { fun plus100(v: Int): Int = pckg.plus100(2 * v) }
你也可以用一个import as
来重命名这个函数 – 如果它来自另一个文件或者包,这更有意义,但是也可以在单个文件中运行:
package pckg import pckg.plus100 as p100 fun plus100(v: Int): Int = v + 100 class Mul2 { fun plus100(v: Int): Int = p100(2 * v) }