如何区分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 。 我希望有帮助。