Android kotlin入门与基础语法二
2017-06-28 17:56
495 查看
基本语法:
使用类型检测及自动类型转换
is运算符检测一个表达式是否某类型的一个实例。如果一个不可变的局部变量或属性已经判断出为某类型,那么检测后的分支中可以直接当作该类型使用,无需显示转换,代码示例:
for 循环的使用
使用while循环
使用when表达式
when表达式的神奇之处就是可以任意规则匹配when方法的参数obj值,甚至是一个表达式,然后一个帅气又直接的else就返回匹配不到的情况值,真是牛了!
区间:使用in运算符检测某个数字是否在指定区间内:
普通区间:
区间迭代:
数列迭代:
使用集合
集合for in普通迭代
使用when in运算符判断集合内是否包含某实例
使用 lambda 表达式来过滤(filter)和映射(map)集合:
备注: 详细请参见lambda函数及lambda表达式
使用类型检测及自动类型转换
is运算符检测一个表达式是否某类型的一个实例。如果一个不可变的局部变量或属性已经判断出为某类型,那么检测后的分支中可以直接当作该类型使用,无需显示转换,代码示例:
fun getStringLength(obj:Any):Int? { if(obj is String) { //'obj'在该条件分支内自动转换成'String' return obj.length } //在离开类型检测分支后,'obj'仍然是'Any'类型 return null } fun main(args: Array<String>) { println("Hello, world!") val a=getStringLength("thanks") println(a) } fun getStringLength(obj: Any): Int? { if (obj !is String) return null // `obj` 在这⼀分⽀⾃动转换为 `String` return obj.length } fun getStringLength(obj: Any): Int? { // `obj` 在 `&&` 右边⾃动转换成 `String` 类型 if (obj is String && obj.length > 0) { return obj.length } return null }
for 循环的使用
val items = listOf("apple", "banana", "kiwi") for (item in items) { println(item) } 或者 val items = listOf("apple", "banana", "kiwi") for (index in items.indices) { println("item at $index is ${items[index]}") }
使用while循环
fun main(args: Array<String>) { val items = listOf("apple", "banana", "kiwi") var index=0 while(index<items.size){ println("item at $index is ${items[index]}") index++ } }
使用when表达式
when表达式的神奇之处就是可以任意规则匹配when方法的参数obj值,甚至是一个表达式,然后一个帅气又直接的else就返回匹配不到的情况值,真是牛了!
fun describe(obj:Any):String= when(obj) { 1->"one" "Hello"->"Greeting" is Long->"Long" !is String->"Not a String" else->"Unknown" }
区间:使用in运算符检测某个数字是否在指定区间内:
普通区间:
val x = 10 val y = 9 if (x in 1..y+1) { println("fits in range") }
区间迭代:
for (x in 1..5) { print(x) } 输出结果: 1 2 3 4 5s
数列迭代:
for(x in 1 .. 10 step 2) { print(x) } 输出结果: 1 3 5 7 9 for(x in 9 downTo 0 step 3) { print(x) } 输出结果: 9 6 3 0
使用集合
集合for in普通迭代
for (item in items) { println(item) }
使用when in运算符判断集合内是否包含某实例
when { "orange" in items -> println("juicy") "apple" in items -> println("apple is fine too") }
使用 lambda 表达式来过滤(filter)和映射(map)集合:
fruits .filter { it.startsWith("a") } .sortedBy { it } .map { it.toUpperCase() } .forEach { println(it) }
备注: 详细请参见lambda函数及lambda表达式
相关文章推荐
- Android 谷歌官方Kotlin语言入门教程(一)基础语法
- Android kotlin入门与基础语法一
- Kotlin 从学习到 Android 第一章 基础语法
- Android kotlin 基础语法
- Kotlin-01.入门介绍和基础语法(Basic Syntax)
- Kotlin for Android(二)Kotlin基础语法
- Kotlin学习笔记1-1 入门-语法基础
- Android Kotlin学习--基础语法
- Kotlin入门(19)Android的基础布局
- Kotlin for Android - 基础语法(类 函数 空检查)
- kotlin 语言入门指南(一)--基础语法
- Kotlin 入门基础语法学习笔记
- Android基础入门
- android入门---环境搭建(配置环境变量)和基础知识
- android sqlite基础入门
- Objective-C基础语法快速入门
- Android-SQLite3 超基础入门
- Android入门学习_Android SQLite基础
- android入门基础总结(2) -----学习小结
- java入门(2)--基础语法