欢迎光临seo外链资源网站,我们为你英文友情链接的信息及服务

seo外链资源

一个资源好的推广优化外链发布网站,为你解决外链获客难题

Kotlin 语法基础大全,从例子着手的 从0到1的学习 -- 流程控制

作者:jcmp      发布时间:2021-05-06      浏览量:0
一、when二、when 语句用来代替广

一、when

二、when 语句

用来代替广泛使用的 switch 关键字,Kotlin 提供了一种更加灵活和简洁的when 结构。when可以被用来当作一个语句,也可以用来当作一个表达式。

fun main() { cases("Hello") cases(1) cases(0L) cases(MyClass()) cases("hello")}fun cases(obj: Any) { when (obj) { // 1 1 -> println("One") // 2 "Hello" -> println("Greeting") // 3 is Long -> println("Long") // 4 !is String -> println("Not a string") // 5 else -> println("Unknown") // 6 } }class MyClass/*GreetingOneLongNot a stringUnknown*/

三、when 表达式

fun main() { println(whenAssign("Hello")) println(whenAssign(3.4)) println(whenAssign(1)) println(whenAssign(MyClass()))}fun whenAssign(obj: Any): Any { val result = when (obj) { // 1 1 -> "one" // 2 "Hello" -> 1 // 3 is Long -> false // 4 else -> 42 // 5 } return result}class MyClass。

四、Loop 循环

kotlin 支持的循环模式有以下几种: for , while , do-while。

五、for

for 在kotlin的使用方式与大多数语言一致

val cakes = listOf("carrot", "cheese", "chocolate")for (cake in cakes) { // 1 println("Yummy, it's a $cake cake!")}

六、while 和 do-while

while 和 do-while 在kotlin的使用方式与大多数语言一致。

fun eatACake() = println("Eat a Cake")fun bakeACake() = println("Bake a Cake")fun main(args: Array) { var cakesEaten = 0 var cakesBaked = 0 while (cakesEaten < 5) { // 1 eatACake() cakesEaten ++ } do { // 2 bakeACake() cakesBaked++ } while (cakesBaked < cakesEaten)}

七、Iterators 迭代器

你可以再类中自定义你的迭代器,通过再类里 实现 iterator 操作符 方法。

class Animal(val name: String)class Zoo(val animals: List) { operator fun iterator(): Iterator { // 1 return animals.iterator() // 2 }/* // 2.1 operator fun iterator(): Iterator { return object : Iterator { override fun next() : Animal { return Animal("111") } override fun hasNext(): Boolean { return false } } }*/}fun main() { val zoo = Zoo(listOf(Animal("zebra"), Animal("lion"))) for (animal in zoo) { // 3 println("Watch out, it's a ${animal.name}") }}/*Watch out, it's a zebraWatch out, it's a lion*/

The iterator can be declared in the type or as an extension function.

八、Ranges 区间

kotlin提供了一系列工具用于区间的数据处理。我们大致看一下。

for(i in 0..3) { // 1 print(i)}print(" ")for(i in 2..8 step 2) { // 2 print(i)}print(" ")for (i in 3 downTo 0) { // 3 print(i)}print(" ")// 0123 2468 3210。

char数组也支持同样的操作

for (c in 'a'..'d') { // 1 print(c)}print(" ")for (c in 'z' downTo 's' step 2) { // 2 print(c)}print(" ")// abcd zxvt。

in关键字 同样支持用在if语句中

val x = 2if (x in 1..5) { // 1 print("x is in range from 1 to 5")}println()if (x !in 6..10) { // 2 print("x is not in range from 6 to 10")}

相等关系检查 Equality Checks

在kotlin 中,使用 == 来比较结构是否相等。使用 === 来比较引用地址是否相等。 更准确地说, a == b 编译完之后等价于 if (a == null) b == null else a.equals(b) .

val authors = setOf("Shakespeare", "Hemingway", "Twain")val writers = setOf("Twain", "Shakespeare", "Hemingway")val writers1 = setOf("Twain", "Shakespeare", "Hemingway")val writers2 = writersprintln(authors == writers) // 1println(authors === writers) // 2println(writers === writers1) // 3println(writers2 === writers) // 4/*truefalsefalsetrue*/

多元表达式 Conditional Expression

在kotlin中没有java 的哪种 a?b:c 的三元表达式。取而代之地是使用if表达式。

fun max(a: Int, b: Int) = if (a > b) a else b // 1println(max(99, -42))。