草庐IT

Kotlin-script

全部标签

kotlin - Kotlin 的 DAO 应该返回 Optional 还是 null?

在Kotlin/JPA之前,我曾经这样编写我的DAO层:publicinterfaceUserDaoextendsJpaRepository{OptionalfindBySsn(Stringssn);}在调用方,如果我想通过SSN找人或创建用户,我可以这样写:valuser=userDao.findBySsn(value).orElseGet{userDao.save(value)}效果很好,看起来很流畅。但由于Kotlin引入了null-safety,还有另一种惯用的方式(dao仍在Java中):publicinterfaceUserDaoextendsJpaRepository{O

kotlin - Kotlin 的 DAO 应该返回 Optional 还是 null?

在Kotlin/JPA之前,我曾经这样编写我的DAO层:publicinterfaceUserDaoextendsJpaRepository{OptionalfindBySsn(Stringssn);}在调用方,如果我想通过SSN找人或创建用户,我可以这样写:valuser=userDao.findBySsn(value).orElseGet{userDao.save(value)}效果很好,看起来很流畅。但由于Kotlin引入了null-safety,还有另一种惯用的方式(dao仍在Java中):publicinterfaceUserDaoextendsJpaRepository{O

lambda - 在 kotlin 中扩展 lambdas 好吗

我对kotlin编程比较陌生,最近发现这是一个有效的说法:classTest:(Int)->String{overridefuninvoke(p1:Int):String{returnp1.toString()}}当我看到它时,我有一种感觉,扩展Lambdas可能不是很好的编程实践,但是我没有任何客观的理由这么认为。我还没有找到任何关于这个问题的文档,所以请你告诉我扩展lambdas是好是坏。 最佳答案 像(Int)->String这样的函数类型在技术上是接口(interface)(如detailedspecdoc中所述),所以如果

lambda - 在 kotlin 中扩展 lambdas 好吗

我对kotlin编程比较陌生,最近发现这是一个有效的说法:classTest:(Int)->String{overridefuninvoke(p1:Int):String{returnp1.toString()}}当我看到它时,我有一种感觉,扩展Lambdas可能不是很好的编程实践,但是我没有任何客观的理由这么认为。我还没有找到任何关于这个问题的文档,所以请你告诉我扩展lambdas是好是坏。 最佳答案 像(Int)->String这样的函数类型在技术上是接口(interface)(如detailedspecdoc中所述),所以如果

kotlin - runBlocking 中的 deferred.await() 抛出的异常即使在被捕获后也被视为未处理

这段代码:funmain(){runBlocking{try{valdeferred=async{throwException()}deferred.await()}catch(e:Exception){println("Caught$e")}}println("Completed")}结果如下:Caughtjava.lang.ExceptionExceptioninthread"main"java.lang.Exceptionatorg.mtopol.TestKt$main$1$deferred$1.invokeSuspend(test.kt:11)...这种行为对我来说没有意义。异

kotlin - runBlocking 中的 deferred.await() 抛出的异常即使在被捕获后也被视为未处理

这段代码:funmain(){runBlocking{try{valdeferred=async{throwException()}deferred.await()}catch(e:Exception){println("Caught$e")}}println("Completed")}结果如下:Caughtjava.lang.ExceptionExceptioninthread"main"java.lang.Exceptionatorg.mtopol.TestKt$main$1$deferred$1.invokeSuspend(test.kt:11)...这种行为对我来说没有意义。异

kotlin - 编译为 JavaScript 时如何测试 Kotlin 代码?

我在IntelliJ(Ultimate)中有一个KotlinJavaScript项目。我希望能够为这个项目编写测试。我尝试了许多不同的方法,从使用Spek编写测试(这将是理想的)到使用Karma/Jasmine编写测试。Spek的问题是我无法让它与JavaScript项目一起工作。它提示一些jars不是JavaScript库。Karma/Jasmine的问题是我无法弄清楚如何让测试运行程序从我的Kotlin测试输出中提取测试。当测试是用纯JavaScript编写时,它们无法访问我的Kotlin对象,因为我不知道如何正确引用它们,因为在进行Kotlin到JavaScript编译时发生的所

kotlin - 编译为 JavaScript 时如何测试 Kotlin 代码?

我在IntelliJ(Ultimate)中有一个KotlinJavaScript项目。我希望能够为这个项目编写测试。我尝试了许多不同的方法,从使用Spek编写测试(这将是理想的)到使用Karma/Jasmine编写测试。Spek的问题是我无法让它与JavaScript项目一起工作。它提示一些jars不是JavaScript库。Karma/Jasmine的问题是我无法弄清楚如何让测试运行程序从我的Kotlin测试输出中提取测试。当测试是用纯JavaScript编写时,它们无法访问我的Kotlin对象,因为我不知道如何正确引用它们,因为在进行Kotlin到JavaScript编译时发生的所

gradle - 使用 Gradle 在 Kotlin 服务器和客户端项目之间共享代码

我想使用单独的shared项目在服务器(JVM)和客户端(JS)之间共享一些代码。我看过一个solution使用Maven,但我不确定如何将其转换为Gradle项目。此外,officialguide中没有任何共享项目的示例。.那么,具有这种设置的最小build.gradle看起来如何? 最佳答案 为了完整起见,这是我几乎同时使用热键创建的设置:主要的settings.gradle:include'shared','client','server'主build.gradle:buildscript{ext{kotlinVer='1.0

gradle - 使用 Gradle 在 Kotlin 服务器和客户端项目之间共享代码

我想使用单独的shared项目在服务器(JVM)和客户端(JS)之间共享一些代码。我看过一个solution使用Maven,但我不确定如何将其转换为Gradle项目。此外,officialguide中没有任何共享项目的示例。.那么,具有这种设置的最小build.gradle看起来如何? 最佳答案 为了完整起见,这是我几乎同时使用热键创建的设置:主要的settings.gradle:include'shared','client','server'主build.gradle:buildscript{ext{kotlinVer='1.0