在正式文档中,我找到了enumvalues()
函数。
enum class RGB {
RED, GREEN, BLUE
}
RGB.values().joinToString { it.name } // RED, GREEN, BLUE
enumValues<RGB>().joinToString { it.name } // RED, GREEN, BLUE
values()
的问题是它只存在于每个具体枚举类上,您不能在泛型枚举上调用它来获取其值,这在某些情况下非常有用。仅举一个想要访问字符串
中所有值的最简单示例,enumvalues
允许您编写如下函数:
inline fun <reified T: Enum<T>> getEnumValuesString(): String {
// could call RGB.values(), but not T.values()
// even with the generic constraint and reified generics
// this works, however
return enumValues<T>().joinToString()
}
然后可以用您定义的任何枚举类调用:
getEnumValuesString<RGB>()
和是否具有相同的功能,只是语法不同,或者和之间是否存在重大差异? 哪一种是正确的方法?
问题内容: 我是Kotlin的新手,最近将一个简单文件从Java转换为Kotlin。我想知道为什么Android转换器将我的java类更改为Kotlin对象。 Java: 转换的Kotlin: 为什么不呢? 任何帮助将不胜感激谢谢。 问题答案: Kotlin对象就像一个无法实例化的类,因此必须按名称进行调用。(本身是静态类) android转换器看到您的类仅包含静态方法,因此将其转换为Kotlin
和类型有什么区别? 似乎可以用它们进行相同的操作(循环、筛选表达式等。),在行为或用法上有什么区别吗?
在Kotlin中是否有任何特定的语言实现,它与其他语言实现的Coroutines有什么不同? 什么意思是coroutine就像轻量线程? 有什么区别? kotlin余式实际上是并行/并发运行的吗? 即使在多核系统中,在任何给定的时间也只有一个协调线在运行(对吗?) 在这里,我开始100000余次,这段代码后面发生了什么?
在Kotlin的类中,一个对象和一个同伴对象有什么区别? 它的“静态”(我是java方面的)生命周期可能有区别吗?
Kotlin中的和有什么区别? 如本链接所述: 只读属性声明的完整语法与可变属性声明的不同之处在于两个方面:它以val而不是var开头,并且不允许setter。 但就在前面有一个使用setter的示例。 为什么我们两者都需要? 这不是Kotlin中变量的重复,与Java的区别:“var”vs.“val”?因为我询问的是与文档中的特定示例相关的疑问,而不仅仅是一般性的疑问。
我最近开始学习静态编程语言,我注意到静态编程语言的for循环语法不同于传统的for循环语法,对我来说有点困惑...我试图在谷歌上搜索它,但没有得到我的答案。 如何复制下面的Java for循环?
本文向大家介绍Kotlin中内置函数的用法和区别总结,包括了Kotlin中内置函数的用法和区别总结的使用技巧和注意事项,需要的朋友参考一下 前言 在Kotlin中的源码标准库(Standard.kt)中提供了一些Kotlin扩展的内置函数可以优化kotlin的编码。Standard.kt是Kotlin库的一部分,它定义了一些基本函数。 这个源代码文件虽然一共不到50行代码,但是这些函数功能都非常强