> = listOf(1, 2, null, 4) val intList: List<Int> = nullableList.filterNotNull() Elvis 操作符(?:) Elvis操作符很像是Java语言中的三目表达式,然而由于三目表达式的对于很多开发者来说都比较难懂,导致经常用错。Kotlin对三目表达式进行了升级,即elvis表达式的来源,Kotlin中不再支持三目表达式。Elvis...
val numbers = (2..1000) .toList() // 将 IntRange 转为 List 集合 .filter { it.isPrimeNumber() } // 筛选出集合中是素数的人 .take(20) // 从筛选出来的数值中取 20 个元素 println(numbers) } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19....
5 println( 1 in range) // 输出 true println( 1 !in range1) // 输出 false 2. 将区间转换为其他类型 Kotlin 提供了一下方法可以直接将区间转换为集合 var range1 = 1 .. 5 var list = range1.toList() println(list) // 输出 [1, 2, 3, 4, 5] 当然还能转换为其他类型,下面是 Kotlin ...
Kotlin 可通过调用 kotlin.ranges 包中的 rangeTo() 函数及其操作符形式的 .. 轻松地创建两 个值的区间。通常,rangeTo() 会辅以 in 或 !in 函数。 if(iin1..4){//等同于1<=i&&i<=4print(i) } 整数类型区间(IntRange、LongRange、CharRange)还有一个拓展特性:可以对其进行迭代。这些区间也是相应整数...
var i: Int = 0 fun hello() { val str = "Hello" print("$str World") } fun sum(x: Int, y: Int): Int { return x + y } fun maxOf(a: Float, b: Float) = if (a > b) a else b } 在这里可以看到,Kotlin的每行代码结尾是可以不加“;”的,加了也没问题 ...
直接使用 IntArray、ByteArray、CharArray 等类型等构造函数来创建数组,需要传入一个数组大小和初始化每个元素等 lambda 表达式,不进行初始化的话,kotlin 会提供一个默认值。 vararray = IntArray(4){ i -> i *2 } vararray2 = BooleanArray(3)
为什么我不能像in循环那样使用Intrange的Int range?对数组进行索引需要Int来指示要在哪个特定索引处检索...
fun main() {/*** 数字类型* 和java一样,Kotlin中所有数字类型都是有符号的,也就是说既可以表示正数,也可以表示负数**//*** 数字格式异常 NumberFormatException*/// val number1: Int = "8.98".toInt()/*** 安全转换函数* Kotlin提供了toDoubleOrNull和toIntOrNull这样的安全转换函数,如果数值* 不能...
toIntArray, toBooleanArray, toLongArray, toShortArray, toByteArray, toDoubleArray, toList, toMap, toSet, toPair 等可用于将一个集合的类型更改为另一个集合的类型。 //将集合类型更改为int类型 fun changeArrayType(){ var uIntArray = UIntArray(5) { 2U } ...
fun<T>List<T>.slice(indices:IntRange):List<T> 调用时可以显示的指定类型实参,也可以自动推导: valletters=('a'..'z').toList()println(letters.slice<Char>(0..2))println(letters.slice(10..13)) 声明泛型类 Kotlin 声明泛型类的方法与 Java 一样: ...