草庐IT

Kotlin-script

全部标签

kotlin - 为什么 Kotlin 初始化 block 中不允许 `return`?

如果我编译这个:classCsvFile(pathToFile:String){init{if(!File(pathToFile).exists())return//Dosomethingusefulhere}}我收到一个错误:Error:(18,13)Kotlin:'return'isnotallowedhere我不想和编译器争论,但我很好奇这个限制背后的动机。 最佳答案 这是不允许的,因为对于几个init{...}block可能有违反直觉的行为,这可能会导致细微的错误:classC{init{if(someCondition)r

kotlin - 为什么 Kotlin 初始化 block 中不允许 `return`?

如果我编译这个:classCsvFile(pathToFile:String){init{if(!File(pathToFile).exists())return//Dosomethingusefulhere}}我收到一个错误:Error:(18,13)Kotlin:'return'isnotallowedhere我不想和编译器争论,但我很好奇这个限制背后的动机。 最佳答案 这是不允许的,因为对于几个init{...}block可能有违反直觉的行为,这可能会导致细微的错误:classC{init{if(someCondition)r

Kotlin - 在多行查询中注入(inject) Android Room SQL 语言

如何注入(inject)多行查询?它适用于带有Java类的Room,但Kotlin也支持吗?例如我这里有2个查询,只有最上面的SQL查询(1行)被注入(inject)。我尝试关注stepsinthisguide但找不到所需的设置。https://youtrack.jetbrains.com/issue/KT-13636存在问题这表明这是已修复的,但我不确定如何实现修复。 最佳答案 您可以使用原始字符串,它无论如何都更具可读性:@DaointerfaceItemDao{@Query("""SELECT*FROMItemWHEREIte

Kotlin - 在多行查询中注入(inject) Android Room SQL 语言

如何注入(inject)多行查询?它适用于带有Java类的Room,但Kotlin也支持吗?例如我这里有2个查询,只有最上面的SQL查询(1行)被注入(inject)。我尝试关注stepsinthisguide但找不到所需的设置。https://youtrack.jetbrains.com/issue/KT-13636存在问题这表明这是已修复的,但我不确定如何实现修复。 最佳答案 您可以使用原始字符串,它无论如何都更具可读性:@DaointerfaceItemDao{@Query("""SELECT*FROMItemWHEREIte

generics - 我对同一个类有两个 Kotlin 扩展方法,但是具有不同的通用签名并且编译器会提示

我正在为同一个类编写两个扩展函数:classSomething{...}它们看起来像:funSomething.toJson():String=...funSomething.toJson():String=...并导致编译错误:Kotlin:Platformdeclarationclash:ThefollowingdeclarationshavethesameJVMsignature如何创建两个只有泛型签名不同的扩展函数?还是不可能?注意:这个问题是作者有意编写和回答的(Self-AnsweredQuestions),因此常见的Kotlin主题的答案出现在SO中。它起源于Kotlin

generics - 我对同一个类有两个 Kotlin 扩展方法,但是具有不同的通用签名并且编译器会提示

我正在为同一个类编写两个扩展函数:classSomething{...}它们看起来像:funSomething.toJson():String=...funSomething.toJson():String=...并导致编译错误:Kotlin:Platformdeclarationclash:ThefollowingdeclarationshavethesameJVMsignature如何创建两个只有泛型签名不同的扩展函数?还是不可能?注意:这个问题是作者有意编写和回答的(Self-AnsweredQuestions),因此常见的Kotlin主题的答案出现在SO中。它起源于Kotlin

kotlin - Kotlin 有恒等函数吗?

Scala在Predef中有一个通用的identity函数:defidentity[A](x:A):AKotlin在标准库中有类似的功能吗?当然我可以简单地使用{it}代替,但我发现identity更容易阅读,并且实例化所有这些lambdas有点浪费。对于任何类型Foo,我必须能够在需要函数(Foo)->Foo的地方使用此identity函数>。在Kotlin的类型系统中甚至可以实现这样的功能吗?(在Scala的情况下,有一个隐式转换,将方法包装在函数对象或其他东西中。) 最佳答案 如果您需要将标识函数作为参数传递给另一个函数,您可

kotlin - Kotlin 有恒等函数吗?

Scala在Predef中有一个通用的identity函数:defidentity[A](x:A):AKotlin在标准库中有类似的功能吗?当然我可以简单地使用{it}代替,但我发现identity更容易阅读,并且实例化所有这些lambdas有点浪费。对于任何类型Foo,我必须能够在需要函数(Foo)->Foo的地方使用此identity函数>。在Kotlin的类型系统中甚至可以实现这样的功能吗?(在Scala的情况下,有一个隐式转换,将方法包装在函数对象或其他东西中。) 最佳答案 如果您需要将标识函数作为参数传递给另一个函数,您可

android - 如何在 Android Studio 中配置 Kotlin 版本?

我已经在项目的build.gradle中配置了Kotlin版本。但在OtherSettings->KotlinCompiler中,它显示的是旧版本。如何解决? 最佳答案 它没有显示过时的版本。假设您的插件版本是“1.1.3”,那么您的编译器版本是“1.1”而不是“1.1.3”。现在,如果你要更新你的kotlinTools>Kotlin>ConfigureKotlinUpdates到如下图所示的抢先体验版本“1.2”,您将能够在“Kotlin编译器”设置中看到“1.2”。 关于androi

android - 如何在 Android Studio 中配置 Kotlin 版本?

我已经在项目的build.gradle中配置了Kotlin版本。但在OtherSettings->KotlinCompiler中,它显示的是旧版本。如何解决? 最佳答案 它没有显示过时的版本。假设您的插件版本是“1.1.3”,那么您的编译器版本是“1.1”而不是“1.1.3”。现在,如果你要更新你的kotlinTools>Kotlin>ConfigureKotlinUpdates到如下图所示的抢先体验版本“1.2”,您将能够在“Kotlin编译器”设置中看到“1.2”。 关于androi