美文网首页
Kotlin学习笔记一:基本语法

Kotlin学习笔记一:基本语法

作者: Eric_Hu | 来源:发表于2018-01-04 11:46 被阅读4次

    学习官方教程并做个笔记

    条件表达式

    可以直接用条件表达式来写函数

    fun main(args: Array<String>) {
        println(max(args[0].toInt(), args[1].toInt()))
    }
    //kotlin不支持三目运算符。。。
    fun max(a: Int, b: Int) = if (a > b) a else b
    
    空指针检查
    // Return null if str does not hold a number
    fun parseInt(str: String): Int? {
        try {
            return str.toInt()
        } catch (e: NumberFormatException) {
            println("One of the arguments isn't Int")
        }
        return null
    }
    fun main(args: Array<String>) {
        if (args.size < 2) {
            println("No number supplied");
        } else {
            val x = parseInt(args[0])
            val y = parseInt(args[1])
    
            // We cannot say 'x * y' now because they may hold nulls
            if (x != null && y != null) {
                print(x * y) // Now we can
            } else {
                println("One of the arguments is null")
        }
        }
    }
    

    用is关键字来判断类型

    跟java中的instance有什么区别?

    fun main(args: Array<String>) {
        println(getStringLength("aaa"))
        println(getStringLength(1))
    }
    
    fun getStringLength(obj: Any): Int? {
        if (obj is String)
            return obj.length // no cast to String is needed
        return null
    }
    

    while循环

    fun main(args:array<String>){
      var i = 0
      while(i<args.size)
        println(args[i++])
    }
    
    fun testDoWhile(y:Int){
      do{
        y--
      }while(y > 0)
    }
    

    for循环

    for循环要用in关键字,是一种foreach写法

    for (item in collection) print(item)
    
    for (item: Int in ints) {
        // ...
    }
    

    java中的for(int i=0;i<10;i++)没法玩了
    可以用withIndex来获取索引

    for((index,value) in array.withIndex()){
      println("the element at $index is $value")
    }
    

    in关键字

    • 判断一个数字是否在一个范围内
    val y=10
    if (x in 1..y-1)//这个..有点意思
      println("ok")
    
    • 范围迭代
    for(a in 1..5)
      print("${a} ")
    
    • 检查数字是否超出数组范围
    if (x !in 0..array.size - 1)
            println("Out: array has only ${array.size} elements. x = ${x}")
    
    • 检查容器中是否包含此对象
    if ("aaa" in array) 
            println("Yes: array contains aaa")
    

    when表达式

    嗯。。其实就是java里的switch case

    fun main(args: Array<String>) {
        cases("Hello")
        cases(1)
        cases(0L)
        cases(MyClass())
        cases("hello")
    }
    
    fun cases(obj: Any) {
        when (obj) {
            1 -> println("One")
            "Hello" -> println("Greeting")
            is Long -> println("Long")
            !is String -> println("Not a string")
            else -> println("Unknown")
        }
    }
    
    class MyClass() {
    }
    

    相关文章

      网友评论

          本文标题:Kotlin学习笔记一:基本语法

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