草庐IT

android-studio - 定义全局 android.widget var/val 时为 "lateinit"或 "by lazy"

定义全局android.widget变量时,例如TextView,是使用lateinit还是bylazy更可取?我最初认为使用bylazy会更好,因为它是不可变的,但我不完全确定。懒人示例:classMainActivity:AppCompatActivity(){valhelloWorldTextViewbylazy{findViewById(R.id.helloWorldTextView)asTextView}overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setCo

android-studio - 在调试器中更改 kotlin val

如何在debugger中改变valproperty(不是方法变量)?是的,我知道val是最终模拟断点在这里:设置值在上下文菜单中禁用:评估不起作用: 最佳答案 在调试器中选择值,使用右键单击上下文菜单选择“设置值...”(默认快捷键F2)。变量的值现在应该显示在文本字段中。输入所需的值并按Enter键更改该值。您只需要输入值而不是赋值(例如x="test"是错误的,只需输入值"test")。更改后的值现在应用于该字段。在调试器中,也可以更改Kotlin中不可变val定义值的值,因为也可以更改Java中final定义变量的值。

android-studio - 在调试器中更改 kotlin val

如何在debugger中改变valproperty(不是方法变量)?是的,我知道val是最终模拟断点在这里:设置值在上下文菜单中禁用:评估不起作用: 最佳答案 在调试器中选择值,使用右键单击上下文菜单选择“设置值...”(默认快捷键F2)。变量的值现在应该显示在文本字段中。输入所需的值并按Enter键更改该值。您只需要输入值而不是赋值(例如x="test"是错误的,只需输入值"test")。更改后的值现在应用于该字段。在调试器中,也可以更改Kotlin中不可变val定义值的值,因为也可以更改Java中final定义变量的值。

java - Kotlin 中的变量,与 Java : 'var' vs. 'val' 的区别?

我正在努力学习Kotlin.Kotlin中的val、var和internal与Java相比是什么?在Java中:RadioGroupradioGroup;RadioButtonbutton;Buttonsubmit;转换后显示:internalvarradioGroup:RadioGroupinternalvarbutton:RadioButtoninternalvarsubmit:Button 最佳答案 val和var是可用于声明变量(和属性)的两个关键字。不同之处在于,使用val会给你一个只读变量,这与在Java中使用final

java - Kotlin 中的变量,与 Java : 'var' vs. 'val' 的区别?

我正在努力学习Kotlin.Kotlin中的val、var和internal与Java相比是什么?在Java中:RadioGroupradioGroup;RadioButtonbutton;Buttonsubmit;转换后显示:internalvarradioGroup:RadioGroupinternalvarbutton:RadioButtoninternalvarsubmit:Button 最佳答案 val和var是可用于声明变量(和属性)的两个关键字。不同之处在于,使用val会给你一个只读变量,这与在Java中使用final

parameters - 无法为 Kotlin 中 fun 中的局部变量重新分配 Val 的编译时错误

在有趣的交换中,我试图用b1更改a1的值,但它显示“val无法重新分配编译时错误”。如果我不能这样改变,那怎么可能呢?funswap(a1:String,b1:String){valtemp=a1a1=b1b1=temp}注意:这只是一个示例,用于了解为什么我无法像在Java中那样重新分配局部变量。 最佳答案 在Kotlin中,val声明了最终的、只读的、引用-这正是编译器错误告诉你的内容Valcannotbereassigned一旦为val赋值,就无法更改。如果您希望能够重新分配它,则必须将其声明为var在Kotlin中,方法参数

parameters - 无法为 Kotlin 中 fun 中的局部变量重新分配 Val 的编译时错误

在有趣的交换中,我试图用b1更改a1的值,但它显示“val无法重新分配编译时错误”。如果我不能这样改变,那怎么可能呢?funswap(a1:String,b1:String){valtemp=a1a1=b1b1=temp}注意:这只是一个示例,用于了解为什么我无法像在Java中那样重新分配局部变量。 最佳答案 在Kotlin中,val声明了最终的、只读的、引用-这正是编译器错误告诉你的内容Valcannotbereassigned一旦为val赋值,就无法更改。如果您希望能够重新分配它,则必须将其声明为var在Kotlin中,方法参数

reference - 为什么我不能从引用对象的 val 或 typealias 引用嵌套对象?

考虑以下代码:objectSomeObjectA{objectSomeObjectB{vala="test"}}valX=SomeObjectAtypealiasY=SomeObjectASomeObjectA.SomeObjectB//worksX.SomeObjectB//errorY.SomeObjectB//error我不能使用引用外部对象的val或typealias来引用嵌套对象(在外部对象中)。为什么? 最佳答案 编译器错误来自java,kotlinobjects转换为javaclasses如下:publicfinalc

reference - 为什么我不能从引用对象的 val 或 typealias 引用嵌套对象?

考虑以下代码:objectSomeObjectA{objectSomeObjectB{vala="test"}}valX=SomeObjectAtypealiasY=SomeObjectASomeObjectA.SomeObjectB//worksX.SomeObjectB//errorY.SomeObjectB//error我不能使用引用外部对象的val或typealias来引用嵌套对象(在外部对象中)。为什么? 最佳答案 编译器错误来自java,kotlinobjects转换为javaclasses如下:publicfinalc

inheritance - 错误或功能 : Kotlin allows to change 'val' to 'var' in inheritance

我刚刚开始探索Kotlin语言。我正在为继承、var&val和副作用而苦苦挣扎。如果我用valx声明一个特征A并在AImpl中覆盖x,则可以将其覆盖为var(参见下面的代码)。令人惊讶的是,A中的print()方法会受到x重新分配的影响,即使x是A。这是错误还是功能?代码:traitA{funprint(){println("A.x=$x")}valx:Int;}classAImpl(x:Int):A{overridevarx=x;//seemslikexcanbeoverridenas`var`}funmain(args:Array){vala=AImpl(2)a.print()//