转载请注明出处:王亟亟的大牛之路
开篇之前还是老规矩,先安利https://github.com/ddwhan0123/Useful-Open-Source-Android 还是尽量每天做更新和维护
上一篇讲了Kotlin的结构,这一把常用的逻辑姿势给写了,就可以干项目了!!
if 表达式
在Kotlin里条件表达式是可以有返回值的,而在java中要达到类似效果的话就要使用三元表达式,像这样a ? yes : no
简单的条件判断
带else的姿势
when 表达式
感觉是传统的switch…case的进化版又兼容了部分if…else if…else的姿势
写个简单的判断逻辑大家看下一目了然
在主类的点击事件里传一个字符串
person.testWhen(People(edit_text.text.toString().trim()))
被调用的地方
fun testWhen(people: People) {
when (people.name) {
"" -> println("name是空的")
"wjj" -> println("name 是 wjj")
else -> {
println("名字是 " + people.name)
}
}
}
它可以内部调用方法,可以是一个代码区块,也可以啥都不错,甚至是类似东西能统一判断,像这样
fun testWhen(people: People) {
when (people.name) {
"", "10086" -> println("name是空的或者10086")
"wjj" -> println("name 是 wjj")
else -> {
println("名字是 " + people.name)
}
}
}
结果:
I/System.out: name是空的或者10086
刚才有提到,他有代替if..else if…else的姿势,那就是不传参的方法,像这样
val a = 8
when {
a > 0 -> println("a > 0")
a < 5 -> println("a < 10")
else -> println("其他")
}
结果:
I/System.out: a > 0
for 循环语句
Kotlin里循环相对来说没有java复杂,不需要++啥的用in
关键字,像这样
var list = arrayOf(1, 2, 3)
for (i in list.indices)
println("下标 " + i + " 内容 " + list[i])
for ((index, value) in list.withIndex()) {
println("下标是 $index 内容是 $value")
}
结果:
I/System.out: 下标 0 内容 1
I/System.out: 下标 1 内容 2
I/System.out: 下标 2 内容 3
I/System.out: 下标是 0 内容是 1
I/System.out: 下标是 1 内容是 2
I/System.out: 下标是 2 内容是 3
while循环
while 和 do…while 和其它语言没什么区别
while (x > 0) {
x--
}
do {
val y = retrieveData()
} while (y != null) // y 在这是可见的