Kotlin中的变量,与Java的区别。 var vs val?
我正在努力学习Kotlin,我想知道什么是Val,Var和内部
在与java相比kotlin。
在java中: –
RadioGroup radioGroup; RadioButton button; Button submit;
转换后显示: –
internal var radioGroup: RadioGroup internal var button: RadioButton internal var submit: Button
val
和var
是你可以用来声明变量(和属性)的两个关键字。 不同的是,使用val
给你一个只读变量,这和在Java中使用final
关键字是一样的。
var x = 10 // int x = 10; val y = 25 // final int y = 25;
只要你愿意,使用val
就是Kotlin中的约定,如果你知道你将会在某个地方改变它的值,那么你应该只做一个var
。
查看关于定义局部变量和声明属性的官方文档。
internal
是一个在Java中不存在的可见性修饰符,它标记一个类的成员,它只会在它所在的模块中可见。这与Java中缺省package
可见性给出的类似性是可见的(这就是为什么转换器会在使用package
可见性转换成员时使用它),但它不完全相同。 此外,请注意,这不是Kotlin中的默认可见性,Kotlin中的类和其成员是默认public
的。
更多关于visiblity修饰符的文档。
val
:不可变的数据变量
var
:可变数据变量
当您将java代码转换为kotlin时:
-
转换器发现你没有初始化变量,所以它会使它们变成
var
(可变的),因为你稍后将会初始化它们。 -
可能你的变量是未使用的,所以转换器使他们内部猜测你不会在你的包之外使用它们。
有关var
和var
更多信息,请阅读本文 ,并在internal
阅读本文 。