Android Kotlin学习--基础语法
来源:互联网 发布:逗屋网络 编辑:程序博客网 时间:2024/06/05 00:16
一、函数
定义一个函数,接受2个int型参数,返回2数之和为int
:Int 表现为类型。
去除了“;”符号。
fun sum(a:Int = 1,b:Int = 2):Int{ return a+b}
只有一个表达式作为函数体,以及自推导型的返回值:
fun sum(a: Int, b: Int) = a + b
二、常量与变量
在Kotlin中常量用val声明,变量用var声明。
常量(个人觉得,正常写就用2或1)val a: Int = 1 // 立刻赋值val b = 2 // `Int` 类型是自推导的val c: Int // 没有初始化器时要指定类型c = 3 // 推导型赋值变量var x = 5 x += 1
三、When 表达式
when子式可以是常量、变量、返回数值的表达式、返回Boolean值的表达式。
when (x) { 1 -> print("x == 1") //可以用任意表达式作为分支的条件 parseInt(s) -> print("s encode x") //分支可以用同样的方式处理的话,分支条件可以连在一起 2,3 -> print("x == 3 or x == 4") //可以用 in 或者 !in 检查值是否值在一个范围或一个集合中 in 1..10 -> print("x is in the range")//范围 !in 10..20 -> print("x is outside the range") in validNumbers -> print("x is valid")//集合 else -> { print("x is neither 1 nor 2") }}
when 也可以用来代替 if-else if 。
如果没有任何参数提供,那么分支的条件就是简单的布尔表达式,当条件为真时执行相应的分支。
when { x.isOdd() -> print("x is odd") x.isEven() -> print("x is even") else -> print("x is funny")}
四、for语法
基本循环
for(int i = 0; i < 10; i++){ // ...}//变为for (i:Int in 0..9){ // ...}
使用指定步数的迭代,这个用到 step()
for (i in 1..4 step 2) print(i) // prints "13"for (i in 4 downTo 1 step 2) print(i) // prints "42"for (i in 1.0..2.0 step 0.3) print("$i ") // prints "1.0 1.3 1.6 1.9 "
如果你想通过 list 的索引进行迭代,你可以这样做:
//递增for(int i = 0; i < list.size(); i++)for (i in list.indices)//递增for(int i = 2; i < list.size(); i++)for (i in 2..list.size-1)
五、空安全
当 str 中不包含整数时返回空:
fun parseInt(str: String): Int? { // ...}
在 Kotlin 类型系统中可以为空和不可为空的引用是不同的。
比如,普通的 String 类型的变量不能为空:
var a: String ="abc"a = null //编译错误//允许为空,我们必须把它声明为可空的变量var b: String? = "abc"b = null//不出错
现在你可以调用 a 的方法,而不用担心 NPE 异常了:
val l = a.length()
但如果你想使用 b 调用同样的方法就有可能报错了:
val l = b.length() //错误:b 不可为空
但我们任然想要调用方法,有些办法可以解决。
第一个选择就是在条件中检查 null
val l = if (b != null) b.length() else -1
第二个选择就是(安全调用)使用安全操作符“?.”
b?.length()//如果 b 不为空则返回长度,否则返回空。这个返回类型是 Int?//安全调用在链式调用是是很有用的。//比如,如果 Bob 是一个雇员可能分配部门(也可能不分配),如果我们想获取 Bob 的部门名作为名字的前缀,就可以这样做:bob?.department?.head?.name//这样的调用链在任何一个属性为空都会返回空。
第三个选择是 NPE-lovers。我们可以用 b!! ,这会返回一个非空的 b 或者抛出一个 b 为空的 NPE
val l = b !!.length()
阅读全文
0 0
- Android Kotlin学习--基础语法
- Kotlin 基础语法学习
- 【Kotlin】基础语法学习
- kotlin基础语法学习
- Android kotlin 基础语法
- Kotlin学习过程 二 Kotlin基础语法
- Kotlin基础语法学习笔记
- Kotlin学习笔记-基础语法
- Kotlin 从学习到 Android 第一章 基础语法
- Kotlin学习笔记之基础语法一
- kotlin 官方学习教程之基础语法
- Kotlin 博客 基础语法学习笔记
- Kotlin学习(一)基础语法
- Kotlin学习笔记之基础语法
- kotlin学习笔记-2-基础语法
- Kotlin 入门基础语法学习笔记
- Kotlin学习笔记——基础语法
- Kotlin学习过程 三 Kotlin基础语法二
- 极验(Geetest) Laravel 5 集成开发包,让验证更安全
- 栈的数组实现
- andriod sdk哪些是必须下载安装的包
- 关于MongoDB批量修改不成功的问题
- JavaSE_语法基础
- Android Kotlin学习--基础语法
- python坑:生成器雁过不留痕
- iOS开发UI篇—CALayer简介
- 利用Python-caffe进行图像分类,卷积核的显示,激活值特征图的显示以及全连接层直方图显示
- 《云计算架构技术与实践》读书笔记(五):Docker 容器及其调度
- Kafka入门经典教程
- Android Studio中使用JNI和第三方.so库
- 记Selenium HTMLTestRunner 无法生成测试报告的总结
- adapter