草庐IT

Kotlin-script

全部标签

scala - 如何让 Kotlin 的类型安全构建器在 Scala 中工作?

Kotlin有很棒的typesafebuilders这使得创建这样的dsl成为可能html{head{title("Thetitle")body{}//compileerror}body{}//fine}很棒的是你不能把标签放在无效的地方,比如body里面的头,自动完成也能正常工作。如果这可以在Scala中实现,我很感兴趣。如何获得? 最佳答案 如果你对构建html感兴趣,那么这里有一个库scalatags使用类似的概念。实现这种构建器不需要任何特定的语言结构。这是一个例子:objectHtmlBuilderextendsApp{i

带有泛型的 Kotlin 构造函数引用

我在(Rx)Java中有这段代码:Observable.fromArray(1,2,3).flatMap(this::intToBooleanObservable,Pair::new).....我希望对应的Kotlin代码看起来像:Observable.fromArray(1,2,3).flatMap(::intToBooleanObservable,::Pair).....但是编译器无法推断Pair的泛型类型,所以我现在能做的最好的事情是:.flatMap(::intToBooleanObservable,{a,b->atob})这并不像我希望的那样简洁。有没有办法在不声明变量a和b

带有泛型的 Kotlin 构造函数引用

我在(Rx)Java中有这段代码:Observable.fromArray(1,2,3).flatMap(this::intToBooleanObservable,Pair::new).....我希望对应的Kotlin代码看起来像:Observable.fromArray(1,2,3).flatMap(::intToBooleanObservable,::Pair).....但是编译器无法推断Pair的泛型类型,所以我现在能做的最好的事情是:.flatMap(::intToBooleanObservable,{a,b->atob})这并不像我希望的那样简洁。有没有办法在不声明变量a和b

kotlin - 是否可以在 Kotlin 中创建递归函数类型?

我有代表流程中步骤的函数。每个函数也知道下一步,如果有的话。我希望能够做类似的事情:funfooStep():Step?{...dosomething...return::barStep//thenextstepisbarStep}这些函数是从一个中央调度函数调用的,其中包含的代码有点像这样:varstep=startStepwhile(step!=null){step=step()}请注意,特定步骤中的逻辑也决定了下一步,如果有的话。我想我可以将Step定义为:typealiasStep=()->Step?所以Step是一个返回另一个Step或null的函数。但是,这无法编译:Kot

kotlin - 是否可以在 Kotlin 中创建递归函数类型?

我有代表流程中步骤的函数。每个函数也知道下一步,如果有的话。我希望能够做类似的事情:funfooStep():Step?{...dosomething...return::barStep//thenextstepisbarStep}这些函数是从一个中央调度函数调用的,其中包含的代码有点像这样:varstep=startStepwhile(step!=null){step=step()}请注意,特定步骤中的逻辑也决定了下一步,如果有的话。我想我可以将Step定义为:typealiasStep=()->Step?所以Step是一个返回另一个Step或null的函数。但是,这无法编译:Kot

kotlin - 静态导入 Kotlin Companion 方法?

tl:博士;是否可以import另一个类的伴生对象内的方法,无需使用Companion限定导入?也就是说,假设toFoo是一种方法,我是否可以说importBar.toFoo而不是importBar.Companion.toFoo在Bar的伴生对象上?我们正在将一个类从Java迁移到Kotlin。我们的类看起来像这样:classBar{staticFootoFoo(){returnnewFoo();}}然后,为了使用它,从一个恰好是Kotlin的类中,我们可以这样说:importBar.toFoo;//...Bar().convert(toFoo());//likeaJava8Coll

kotlin - 静态导入 Kotlin Companion 方法?

tl:博士;是否可以import另一个类的伴生对象内的方法,无需使用Companion限定导入?也就是说,假设toFoo是一种方法,我是否可以说importBar.toFoo而不是importBar.Companion.toFoo在Bar的伴生对象上?我们正在将一个类从Java迁移到Kotlin。我们的类看起来像这样:classBar{staticFootoFoo(){returnnewFoo();}}然后,为了使用它,从一个恰好是Kotlin的类中,我们可以这样说:importBar.toFoo;//...Bar().convert(toFoo());//likeaJava8Coll

jpa - Kotlin数据类继承+拷贝方法

我从个人经验和thisdiscussion都了解当dataclass从另一个类继承时,该继承类的字段不包含在数据类的copy函数中。我对解决此问题的选项很感兴趣。具体来说,我有一个JPA@MappedSuperClass用于我的JPA实体,它们是dataclasses。在父类(superclass)中,我设置了实体ID,(至少到目前为止)我总是想这样做。我可能还想做一些其他的事情,比如设置创建日期、上次更新日期等。到目前为止我考虑过的选项:将ID、创建日期等复制粘贴到每个实体中。优点:它很简单,并且复制方法有效。缺点:DRY失败,您无法使用共享父类(superclass)处理所有实体。

jpa - Kotlin数据类继承+拷贝方法

我从个人经验和thisdiscussion都了解当dataclass从另一个类继承时,该继承类的字段不包含在数据类的copy函数中。我对解决此问题的选项很感兴趣。具体来说,我有一个JPA@MappedSuperClass用于我的JPA实体,它们是dataclasses。在父类(superclass)中,我设置了实体ID,(至少到目前为止)我总是想这样做。我可能还想做一些其他的事情,比如设置创建日期、上次更新日期等。到目前为止我考虑过的选项:将ID、创建日期等复制粘贴到每个实体中。优点:它很简单,并且复制方法有效。缺点:DRY失败,您无法使用共享父类(superclass)处理所有实体。

kotlin - 如何将 Kotlin 代码引用从函数更改为 intellij 插件中的字段?

我正在编写一个intellij插件,我正在重构一个类,将它的getter(例如,funname():String)更改为字段(例如,valname:String)。但是,我不知道如何最好地更新相应的PsiReference实例。Kotlin调用者需要在不带括号的情况下从myObj.name()更改为myObj.name。目前,我正在做以下事情:ReferencesSearch.search(function).findAll().forEach{valnextSibling=it.element.nextSiblingif((nextSiblingas?KtValueArgumentL