草庐IT

Kotlin-script

全部标签

kotlin - 如何更新实现通用接口(interface)的数据类

我正在为数据类和多态性而苦苦挣扎。我想从不变性中受益,但仍然能够更新我的状态。为此,我希望能够使用copy功能。让我们举个例子。我有这个类层次结构:interfaceAging{valage:Int}dataclassCheese(overridevalage:Int//moreCheesespecificproperties):AgingdataclassWine(overridevalage:Int,valgrape:String//moreWinespecificproperties):Aging现在我希望能够做这样的事情(但this不起作用):classRipeningProc

kotlin - 如何更新实现通用接口(interface)的数据类

我正在为数据类和多态性而苦苦挣扎。我想从不变性中受益,但仍然能够更新我的状态。为此,我希望能够使用copy功能。让我们举个例子。我有这个类层次结构:interfaceAging{valage:Int}dataclassCheese(overridevalage:Int//moreCheesespecificproperties):AgingdataclassWine(overridevalage:Int,valgrape:String//moreWinespecificproperties):Aging现在我希望能够做这样的事情(但this不起作用):classRipeningProc

Java Integer.MAX_VALUE 与 Kotlin Int.MAX_VALUE

我注意到了一件有趣的事情。Java的Integer.MAX_VALUE是0x7fffffff(2147483647)Kotlin的Int.MAX_VALUE是2147483647但是如果你写在Java中:int值=0xFFFFFFFF;//一切都很好(但打印的值为'-1')在Kotlin中:valvalue:Int=0xFFFFFFFF//你得到异常整数字面量不符合预期的类型Int很有趣吧?因此,您可以在Java中执行newjava.awt.Color(0xFFFFFFFF,true)而在Kotlin中执行not之类的操作。Color类在“二进制”级别与该int一起工作,因此对于所有构

Java Integer.MAX_VALUE 与 Kotlin Int.MAX_VALUE

我注意到了一件有趣的事情。Java的Integer.MAX_VALUE是0x7fffffff(2147483647)Kotlin的Int.MAX_VALUE是2147483647但是如果你写在Java中:int值=0xFFFFFFFF;//一切都很好(但打印的值为'-1')在Kotlin中:valvalue:Int=0xFFFFFFFF//你得到异常整数字面量不符合预期的类型Int很有趣吧?因此,您可以在Java中执行newjava.awt.Color(0xFFFFFFFF,true)而在Kotlin中执行not之类的操作。Color类在“二进制”级别与该int一起工作,因此对于所有构

android - 为什么我的类路径中有不同版本的 Kotlin JAR?

我决定将几个Kotlin文件添加到AS3.0中的现有JavaAndroid项目中。添加Kotlin文件后,我让助手将适当的行添加到我的build.gradle文件中,特别是:项目build.gradlebuildscript{ext.kotlin_version='1.2.21'//...dependencies{classpath"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"appbuild.gradle//topoffileapplyplugin:'com.android.application'applypl

android - 为什么我的类路径中有不同版本的 Kotlin JAR?

我决定将几个Kotlin文件添加到AS3.0中的现有JavaAndroid项目中。添加Kotlin文件后,我让助手将适当的行添加到我的build.gradle文件中,特别是:项目build.gradlebuildscript{ext.kotlin_version='1.2.21'//...dependencies{classpath"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"appbuild.gradle//topoffileapplyplugin:'com.android.application'applypl

kotlin - 在运行另一个 observable 之前使用 concatMap 运行 Single

AndroidStudio3.1RC2kotlin1.2.30Java中fetchMessage的签名SinglefetchMessage(finalStringId);kotlin代码funtranslate(Id:String):Completable{returnrepository.fetchMessage(Id).flatMap{Single.fromCallable({update(messageId,it,State.COMPLETED)State.COMPLETED})}.onErrorReturn({update(Id,null,State.ERROR)State.E

kotlin - 在运行另一个 observable 之前使用 concatMap 运行 Single

AndroidStudio3.1RC2kotlin1.2.30Java中fetchMessage的签名SinglefetchMessage(finalStringId);kotlin代码funtranslate(Id:String):Completable{returnrepository.fetchMessage(Id).flatMap{Single.fromCallable({update(messageId,it,State.COMPLETED)State.COMPLETED})}.onErrorReturn({update(Id,null,State.ERROR)State.E

kotlin - 当作为参数传递时,属性引用 (::test) 是否等效于访问属性 ({ test }) 的函数,例如 `() -> String` ?

我开始怀疑通过::test访问属性是否等同于调用{test}或者它是否是使用反射的间接调用。在查看以下内容时,我想到了这个问题:HowcanIpasspropertygetterasafunctiontypetoanotherfunction虽然::test和{test}都可以工作,但IDE(Intellij)将::test设置为KProperty-type而后一种类型在分配给变量时是()->String。所以这里有区别。但有效的区别是什么?这些是Java中的真实方法引用还是访问属性的反射方式?一个变体可能会对另一个变体产生任何性能影响吗?代码片段:classTest(valtest:

kotlin - 当作为参数传递时,属性引用 (::test) 是否等效于访问属性 ({ test }) 的函数,例如 `() -> String` ?

我开始怀疑通过::test访问属性是否等同于调用{test}或者它是否是使用反射的间接调用。在查看以下内容时,我想到了这个问题:HowcanIpasspropertygetterasafunctiontypetoanotherfunction虽然::test和{test}都可以工作,但IDE(Intellij)将::test设置为KProperty-type而后一种类型在分配给变量时是()->String。所以这里有区别。但有效的区别是什么?这些是Java中的真实方法引用还是访问属性的反射方式?一个变体可能会对另一个变体产生任何性能影响吗?代码片段:classTest(valtest: