美文网首页
Kotlin学习笔记(一)

Kotlin学习笔记(一)

作者: 阪本先生的围巾 | 来源:发表于2017-12-21 13:31 被阅读0次
    Kotlin学习笔记
    • Kotlin每条语句不加;
    • Kotlin中打印直接调用print()println(), 打印的类型
      print打印
      println打印
      println()无参代表只打印回车换行.
    • 函数调用: 函数前统一声明fun, 参数与返回值类型写在其后, 且需要添加:, 由于编码规范,需要在类型前添加一个空格. 所以Kotlin函数的写法如下:
    fun sum(a: Int, b: Int): Int {
        return a + b
    }
    
    • Kotlin中的推导:
    1. 函数返回类型推导:
    fun sum2(a: Int, b: Int) = a + b
    

    2.变量/常量声明时赋值可以直接推导(但是先声明后赋值, 就必须指明类型, 指明类型方式与参数指明类型方式相同)

    val a: Int = 10
    var d = 10
    val c: Int 
    c = 10
    
    • Kotlin中使用$在字符串中表达式取值, 当然变量取值也是可以的,不需要添加{}
        print(" 4和5的和为:${sum2(4,5)}")
    
        println(" $a 与 $b 的和为 ${sum2(a,b)}")
    
    • 没有意义的返回类型Unit, 相当于Java中的void,但是可以省略
    fun printMessage(a: Int, b: Int) {
        println(" $a 与 $b 的和为 ${sum2(a,b)}")
    }
    
    • Kotlin中的常量与变量 常量使用val, 变量使用var
    • 字符串模板
    var e = 11
        val s = "e is $e!"
        e = 12
        print("${s.replace("is","was")}now e is $e")
    
    • 条件表达式作为返回值
    fun maxof2 (a: Int, b: Int) = if (a > b) a else b
    
    • 函数返回值可能为空时需要使用?明确指明
    fun parseInt(s: String): Int?{
        return s.toIntOrNull()
    }
    
    • 使用is/!is判断是否为某个类型的实例, Any类似Object. 判断为true后就是判断的类型了,而不用转换为对应的类型.
    fun getStringLength(obj: Any): Int? {
        if (obj is String) {
            //obj现在就是一个String了
            return obj.length
        } else {
            return null
        }
    }
    

    这里可以使用if表达式直接返回让代码看起来更简洁

    • in关键字在for循环中的两种使用
    val foodList = listOf<String>("apple","banana","orange")
        for (food in foodList) {
            println("$food ")
        }
    

    这种循环类似于foreach循环

    for (index in foodList.indices) {
            println("$index =>${foodList.get(index)}")
            //可以使用get,也能使用类似数组的访问方法
            println("$index =>${foodList[index]}")
        }
    

    这种循环使用场景和常用的for循环相同, 可以很方便的获得其中的下标.

    • when表达式可以作为返回值, when else 相当于Java中的switch case default的增强
    fun describe(obj: Any): String {
        //when也可以像if一样当做一个表达式
        return when (obj) {
            "a" -> "字符串"
            1 -> "一个int"
            else -> "Ok"
        }
    }
    
    • in关键字的使用
    if (1 in 0..10) print(true) else print(false)
    if (1 !in 0..10) print(true) else print(false)
    

    in 在循环中的使用
    ..表示到左边到右边的范围, 与之相对的是downTo关键字, 一个是顺序, 一个是倒序
    配合步进使用

    for (x in 0..10 step 2) {
            print(" $x ")
        }
    
        for (y in 10 downTo 0 step 3) {
            print(" $y ")
        }
    
    • 集合
    val foodSet = setOf("Banana","Apple","Orange")
    val foodList = listOf<String>("apple","banana","orange")
    
    • 集合与lambda联动
    foodList.filter { it.startsWith("a") }
                .sortedBy { it }
                .map { it.toUpperCase() }
                .forEach { print(it) }
    

    参考:
    Kotlin基础语法

    相关文章

      网友评论

          本文标题:Kotlin学习笔记(一)

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