美文网首页
Kotlin 视频笔记二

Kotlin 视频笔记二

作者: 不知名bzm | 来源:发表于2018-07-21 00:04 被阅读9次

(2018.7.20)

函数定义

fun getStrLength(str: String): Int {
    return name.length
}

循环

for in

val temp = "hello"
// 输出字符串的每一项
for (c: Char in temp) {
    println(c)
}

// 输出字符串的每项及对应的index
for ((index, c) in temp.withIndex()) {
    println("index = $index, c = $c")
}

高级循环

forEach

// 输出字符串的每一项
temp.forEach {
    println(it)
}

// 输出字符串的每项及对应的index
temp.forEachIndexed { index, c ->
    println("index = $index, c = $c")
}

跳出循环

支持:break (跳出循环)、continue(跳过本次循环,继续下一个循环)

指定跳出到标签处

val numStr = "1234"
loop@for (c in temp) { // 定义标签,名字自定义
    for (n in numStr) {
        if (c == 'e' && n == '3') {
            break@loop // 这样可以直接跳出外循环
        }
        println("$c $n")
    }
}

区间

// Int 区间
val rang = 1..100  // [1, 100] 最大100
val rang1 = 1 until 100  // [1, 100) 最大99

// Char 区间
val strRang = 'a'..'z'
val strRang1 = 'a' until 'z'

// Long 区间
val longRang = 1L..100L

// 定义反向区间
val rangA = 10 downTo 1

// 反转区间
val rangA1 = rangA.reversed()

数组

// 定义数组
val array = arrayOf("AA", "BB", "CC")

// 修改数组中某个位置的值
// 方法1
array[2] = "DD"
// 方法2
array.set(1, "FF")

when表达式

// 使用
fun getChar(age: Int): Char {
    when (age) {
        in 1..6 -> return '1' // 支持区间
        7 -> {
            return 'A'
        }
        9,10 -> { // 满足其中一个
            return 'B'
        }
        is Int -> { // 只要是逻辑语句就可以
            return 'i'
        }
        else -> {
            return 'Z'
        }
    }
}

// when 可以不添加参数
when {
    age == 1 -> {
        return 'B'
    }
}

// when有返回值
fun getChar(age: Int): String = when (age) {
    in 1..6 -> "aaA"
    10 -> "a4"
    else -> "aa"
}

函数表达式

kotlin 中函数和对象是平等的

val add: (Int, Int) -> Int = {a, b -> a + b} // 定义函数变量

// 定义默认参数
fun sayHello(name: String = "AA", age: Int) {
    println("hello $name age is $age")
}

// 调用
sayHello(age = 15) // 输出 hello AA age is 15

// 具名参数,指定给哪一个参数赋值
sayHello(age = 15, name="BB")

// 定义可变参数
fun add(vararg params: Int): Int {
    var sum = 0
    for(ele in params) {
        sum += ele
    }
    return sum
}

// 调用
add(1, 2, 4)
add(1, 4, 10, 20)

异常处理

try {
    // 可能发生异常的代码
} catch(e: Exception) {
    // 处理异常时的逻辑
}

相关文章

网友评论

      本文标题:Kotlin 视频笔记二

      本文链接:https://www.haomeiwen.com/subject/utycmftx.html