Kotlin学习之路一(为什么使用kotlin + kotlin基本语法)

一.为什么使用kotlin?

  • 简洁: 大大减少样板代码的数量。
  • 安全: 避免空指针异常等整个类的错误。
  • 互操作性: 充分利用 JVM、Android 和浏览器的现有库。
  • 工具友好: 可用任何 Java IDE 或者使用命令行构建

二.kotlin基本语法

  1.程序入口(Kotlin 应用程序的入口点是main函数。)

    fun main(){

      println("hello world")

    }

  2.函数构造

    例:  fun sum(a:Int,b:Int):Int{

         return a+b 

       }

       等同于

       fun sum(a:Int,b:Int) = a+b

    a,b函数带参

    :Int表示返回Int类型的数据

  3.kotlin变量

    1.val:只读局部变量使用关键字,只能赋值一次

    2.var:重新赋值的变量

  4.字符串模板($赋值,replace替换)

    val a = 1

    val s = "a is $a"

    val s1="${s.replace("is","was")}"

  5.条件表达式

    1)if语句

    例:  fun maxOf(a:Int,b:Int):Int{

         if(a>b){

           return a

         }else{

           return b

         }

       }

       等同于

       fun maxOf(a:Int,b:Int) = if(a>b) a else b

    

    2)when语句(取代java中的switch操作符)

      fun describe(obj: Any): String =

        when (obj) {
          1 -> "One"
          "Hello" -> "Greeting"
          is Long -> "Long"
          !is String -> "Not a string"
          else -> "Unknown"
        }

  6.null与空值检测

    当某个变量的值可以为null的时候,必须在声明处的类型后添加?来标识该引用可为空。

  7.类型检测与类型自动转换

    is运算符检测一个表达式是否某类型的一个实例。如果一个不可变的局部变量或属性已经判断出为某类型,那么检测后的分支中可以直接当作该类型使用,无需显式转换

    例:

      fun getStringLength(obj: Any): Int? {
        if (obj is String) {
          // `obj` 在该条件分支内自动转换成 `String`
          return obj.length
        }

        // 在离开类型检测分支后,`obj` 仍然是 `Any` 类型
        return null
      }

  8.循环语句

    1)for语句

      //直接依次获取list集合中的对象

      for(listItem in list){
        println(listItem)
      }

      //依次根据list的下标获取对象

      for(index in list.indices){
        println("$index no item is ${list[index]}")
      }

    2)while语句

      var index = 0

      while(index < list.size()){

        println("$index no item is ${list[index]}")

        index++

      }

  9.in运算符来检测一个值是否在某个区间

    例: a in 1..20 表示a所在的是否在1-20之内(包含1与20)

原文地址:https://www.cnblogs.com/done-dyj/p/12881101.html