我正在努力学习Kotlin。与Java相比,Kotlin中的val
,var
和internal
是什么?
在Java中:
RadioGroup radioGroup;
RadioButton button;
Button submit;
转换后显示:
internal var radioGroup: RadioGroup
internal var button: RadioButton
internal var submit: Button
答案 0 :(得分:29)
val
和var
是可用于声明变量(和属性)的两个关键字。不同之处在于使用val
为您提供了只读变量,这与在Java中使用final
关键字相同。
var x = 10 // int x = 10;
val y = 25 // final int y = 25;
尽可能使用val
是Kotlin中的约定,如果您知道自己将在某处更改其值,则应该只生成var
。
请参阅有关defining local variables和declaring properties的官方文档。
internal
是一个在Java中不存在的可见性修饰符。它标记了一个类的成员,该类只在其所在的模块中可见。这与Java中默认package
可见性的相似性(这就是转换器使用它的原因)转换成员package
时的可见度)。但是,它并不完全相同。另请注意,它不是Kotlin中的默认可见性,Kotlin中的类及其成员默认为public
。
有关visiblity modifiers的文档中有更多内容。
答案 1 :(得分:11)
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/Login.jsp</location>
</error-page>
:不可变数据变量
val
:可变数据变量
将Java代码转换为Kotlin时:
答案 2 :(得分:1)
val 用于声明最终变量。 val 变量的特征
var 是常规变量
我们可以稍后使用lateinit修饰符进行初始化
[{lateinit
也用于全局变量,我们不能将其用于局部变量]
val 就像Java中的final关键字
答案 3 :(得分:1)
在kotlin中,我们可以用两种类型声明变量:val
和var
。
val
无法重新分配,它用作最终变量。
val x = 2
x=3 // cannot be reassigned
另一方面,可以将var重新分配为可变的
var x = 2
x=3 // can be reassigned