草庐IT

Kotlin-script

全部标签

generics - 如何解决 Kotlin 中违反有限界限制的问题?

这个问题在这里已经有了答案:Crossreferencesintypeparameters(2个回答)关闭5年前。假设我在Java中有这个声明,没关系。abstractclassStart{publicTend;}abstractclassEnd{publicTstart;}但是,在Kotlin中不行,因为Kotlin对“循环”类型参数有限制。abstractclassStart>{lateinitvarend:T}abstractclassEnd>{lateinitvarstart:T}在Kotlin中是否有任何方法可以解决这个问题,以便我可以拥有相互依赖的泛型类型?

java - Kotlin 和 Java 字符串拆分与正则表达式的区别

如果我们有一个valtxt:kotlin.String="1;2;3;"并且喜欢将其拆分为一个数字数组,我们可以尝试以下操作:valnumbers=string.split(";".toRegex())//gives:[1,2,3,]尾随的空String包含在CharSequence.split的结果中.另一方面,如果我们查看JavaStrings,结果是不同的:valnumbers2=(stringasjava.lang.String).split(";")//gives:[1,2,3]这一次,使用java.lang.String.split,结果不包括尾随的空String。鉴于相应

java - Kotlin 和 Java 字符串拆分与正则表达式的区别

如果我们有一个valtxt:kotlin.String="1;2;3;"并且喜欢将其拆分为一个数字数组,我们可以尝试以下操作:valnumbers=string.split(";".toRegex())//gives:[1,2,3,]尾随的空String包含在CharSequence.split的结果中.另一方面,如果我们查看JavaStrings,结果是不同的:valnumbers2=(stringasjava.lang.String).split(";")//gives:[1,2,3]这一次,使用java.lang.String.split,结果不包括尾随的空String。鉴于相应

kotlin - 有没有办法在数据类构建时转换属性的值?

在创建数据类时,我经常发现我想转换其中一个属性,通常是对其进行规范化或制作防御性副本。例如,这里我希望productCode始终为小写:dataclassProduct(valproductCode:String)我尝试添加一个initblock,希望Kotlin足够聪明,让我手动处理将构造函数参数分配给属性:dataclassProduct(valproductCode:String){init{this.productCode=productCode.toLowerCase()}}但它将此视为重新分配。我宁愿不用手动和IDE编写equals/hashCode/toString/co

kotlin - 有没有办法在数据类构建时转换属性的值?

在创建数据类时,我经常发现我想转换其中一个属性,通常是对其进行规范化或制作防御性副本。例如,这里我希望productCode始终为小写:dataclassProduct(valproductCode:String)我尝试添加一个initblock,希望Kotlin足够聪明,让我手动处理将构造函数参数分配给属性:dataclassProduct(valproductCode:String){init{this.productCode=productCode.toLowerCase()}}但它将此视为重新分配。我宁愿不用手动和IDE编写equals/hashCode/toString/co

kotlin - 当我们有属性 setter 时, `Delegates.observable` 的用例是什么?

当我们只能使用属性setter时,Delegates.observable的用例是什么?varfoobyDelegates.observable("hell0"){prop,old,new->//reacttochangesinfoo}varbar="hello"set(value){field=value//reacttochangesinbar//wecanalsodovalidation,setsomethinglike`value*2`tofield,etc.} 最佳答案 如果您希望多个属性以相同的方式对修改使用react,

kotlin - 当我们有属性 setter 时, `Delegates.observable` 的用例是什么?

当我们只能使用属性setter时,Delegates.observable的用例是什么?varfoobyDelegates.observable("hell0"){prop,old,new->//reacttochangesinfoo}varbar="hello"set(value){field=value//reacttochangesinbar//wecanalsodovalidation,setsomethinglike`value*2`tofield,etc.} 最佳答案 如果您希望多个属性以相同的方式对修改使用react,

kotlin - sourceSets with gradle kotlin DSL in Grade 4.10rc

我正在使用以下代码:java.sourceSets["main"].java{srcDir("src/main/extraSource")}在gradle4.9中完美运行,但在4.10rc1中出现以下错误:Line5:java.sourceSets["main"].java{^Unresolvedreference.Noneofthefollowingcandidatesisapplicablebecauseofreceivertypemismatch:publicvalProject.sourceSets:SourceSetContainerdefinedinorg.gradle.k

kotlin - sourceSets with gradle kotlin DSL in Grade 4.10rc

我正在使用以下代码:java.sourceSets["main"].java{srcDir("src/main/extraSource")}在gradle4.9中完美运行,但在4.10rc1中出现以下错误:Line5:java.sourceSets["main"].java{^Unresolvedreference.Noneofthefollowingcandidatesisapplicablebecauseofreceivertypemismatch:publicvalProject.sourceSets:SourceSetContainerdefinedinorg.gradle.k

kotlin - kotlin 扩展属性的惰性初始化器中的这个引用

我正在尝试Kotlin并想为Activity实现一个惰性扩展属性:/***Activitymodule*/valActivity.activityModule:ActivityModulebylazy{ActivityModule(this)}编译器错误:'this'isnotdefinedinthiscontext我如何才能将其限定为Activitythis?我已阅读aguide但无法得到它。this@Activity表示引用未解析。 最佳答案 此处的其他答案指出,在stdlib的lazy接收器的当前实现中引用this是不可能的,