草庐IT

Kotlin-script

全部标签

hashmap - 在 kotlin 中转换 map 的惯用方式?

在Scala中,它只是map函数。例如,如果hashMap是字符串的hashMap,那么您可以执行以下操作:valresult:HashMap[String,String]=hashMap.map(case(k,v)=>(k->v.toUpperCase))然而,在Kotlin中,map将map转换为列表。在Kotlin中是否有惯用的方式来做同样的事情? 最佳答案 我不认为一个人的意见算惯用的,但我可能会使用//transformkeysonly(usesamevalues)hashMap.mapKeys{it.key.upperc

string - 为什么 Kotlin 中 null + null 的类型是隐式 String?

以下Kotlin代码:valx=null+null导致x的类型为String,根据String.plus的文档,这是正确的:Concatenatesthisstringwiththestringrepresentationofthegiven[other]object.Ifeitherthereceiverorthe[other]objectarenull,theyarerepresentedasthestring"null".但是,我不明白为什么会发生这种情况-是因为该语言的某些特殊功能吗? 最佳答案 可能是因为String?.p

string - 为什么 Kotlin 中 null + null 的类型是隐式 String?

以下Kotlin代码:valx=null+null导致x的类型为String,根据String.plus的文档,这是正确的:Concatenatesthisstringwiththestringrepresentationofthegiven[other]object.Ifeitherthereceiverorthe[other]objectarenull,theyarerepresentedasthestring"null".但是,我不明白为什么会发生这种情况-是因为该语言的某些特殊功能吗? 最佳答案 可能是因为String?.p

android - kotlin-stdlib-jre7 已弃用。请改用 kotlin-stdlib-jdk7

昨天我更新了AndroidStudio版本和Kotlin插件版本。AndroidStudio版本:3.1.2Kotlin版本:1.2.41当我使用此配置创建Android项目时,我收到KotlinCompiler警告提示w:/home/ganeshtikone/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.2.41/9e7a6f582de73d9cdc6c56ef4e23604a0ee55768/kotlin-stdlib-jre7-1.2.41.jar:kotlin-stdli

android - kotlin-stdlib-jre7 已弃用。请改用 kotlin-stdlib-jdk7

昨天我更新了AndroidStudio版本和Kotlin插件版本。AndroidStudio版本:3.1.2Kotlin版本:1.2.41当我使用此配置创建Android项目时,我收到KotlinCompiler警告提示w:/home/ganeshtikone/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.2.41/9e7a6f582de73d9cdc6c56ef4e23604a0ee55768/kotlin-stdlib-jre7-1.2.41.jar:kotlin-stdli

visibility - Kotlin 中的包保护替代方案

在Java中,我们为类提供了packageprotected(默认)修饰符,它允许我们在一个包中拥有许多类,但只公开少数几个类并保持逻辑封装。对于Kotlin,情况似乎并非如此。如果我想让一些类彼此可见但不再可见,我必须使用私有(private)修饰符来限制对单个文件的可见性。因此,如果您想在一个包中包含10个类,但只有其中一个是公开的,那么您必须拥有一个包含所有类的大文件(并且到处都是private)。这是正常的做法还是有办法在Kotlin中实现一些类似的模块化?我不明白:如果他们有包的概念,为什么他们要摆脱包保护访问?更新:毕竟我们可能拥有包保护的可见性seethediscussi

visibility - Kotlin 中的包保护替代方案

在Java中,我们为类提供了packageprotected(默认)修饰符,它允许我们在一个包中拥有许多类,但只公开少数几个类并保持逻辑封装。对于Kotlin,情况似乎并非如此。如果我想让一些类彼此可见但不再可见,我必须使用私有(private)修饰符来限制对单个文件的可见性。因此,如果您想在一个包中包含10个类,但只有其中一个是公开的,那么您必须拥有一个包含所有类的大文件(并且到处都是private)。这是正常的做法还是有办法在Kotlin中实现一些类似的模块化?我不明白:如果他们有包的概念,为什么他们要摆脱包保护访问?更新:毕竟我们可能拥有包保护的可见性seethediscussi

kotlin - Kotlin 中的 IntArray 与 Array<Int>

我不确定Kotlin中IntArray和Array之间的区别是什么,以及为什么我不能互换使用它们:我知道IntArray在定位int[]时会转换为JVM,但是Array会转换成什么?此外,您还可以使用String[]或YourObject[]。为什么Kotlin有{primitive}Array类型的类,而几乎任何东西都可以排列成一个数组,而不仅仅是基元。 最佳答案 Array是Integer[]在引擎盖下,而IntArray是int[].就是这样。这意味着当您输入Int在Array,它将始终被装箱(具体来说,使用Integer.v

kotlin - Kotlin 中的 IntArray 与 Array<Int>

我不确定Kotlin中IntArray和Array之间的区别是什么,以及为什么我不能互换使用它们:我知道IntArray在定位int[]时会转换为JVM,但是Array会转换成什么?此外,您还可以使用String[]或YourObject[]。为什么Kotlin有{primitive}Array类型的类,而几乎任何东西都可以排列成一个数组,而不仅仅是基元。 最佳答案 Array是Integer[]在引擎盖下,而IntArray是int[].就是这样。这意味着当您输入Int在Array,它将始终被装箱(具体来说,使用Integer.v

kotlin - 如何将项目添加到 Kotlin 中的 ArrayList?

如何在Kotlin中向ArrayList添加项目? 最佳答案 对于刚从java迁移的人,在KotlinList默认是不可变的,可变版本的Lists被称为MutableList。因此,如果您有类似的东西:vallist:List=ArrayList()在这种情况下,您不会获得add()方法,因为列表是不可变的。因此,您必须声明一个MutableList,如下所示:vallist:MutableList=ArrayList()现在您将看到一个add()方法,您可以将元素添加到任何列表中。 关