如何区分Kotlin中同名的全局variables?
我正在学习Kotlin,在我的项目中,我有如下的东西
Utils.kt:
var weightInKilos = 100.0 //should multiply the above var fun doSomething(multiplier: Double, weightInKilos: Double) { weightInKilos = weightInKilos * multiplier } print(doSomething(4.2, weightInKilos))
这将是整个文件(它不是一个对象的一部分),所以我不能使用这个关键字。 我知道我可以重命名其中的一个,但有什么样的标识符我可以用来区分两个增值税,所以代码打印420?
使用包名称作为标识符。 如果Utils.kt
文件的封装包是com.example
,那么可以使用com.example.weightInKilos = weightInKilos * multiplier
。
感谢您的Android Studio自动完成。
正如您已经注意到的那样,顶层函数属于包,可以用完全限定的名称来引用。
我知道你只是在玩游戏,但值得一提的是,你不会真的想要这个有状态的属性weightInKilos
定义在顶层。 把它和所有相关的函数(比如doSomething
一起包装成一个object
(这是一个单例)比较好,
object WeightState { var weightInKilos = 100.0 //should multiply the above var fun doSomething(multiplier: Double, weightInKilos: Double) { this.weightInKilos = weightInKilos * multiplier } }
正如你所看到的,现在可以参考this
.weightInKilos
。 我希望有帮助。