Kotlin 基本语法

作者: 提丶米 | 来源:发表于2018-04-04 11:08 被阅读84次
    image

    函数定义

    函数定义使用关键字 fun,参数格式为:参数 : 类型

    fun sum(a: Int, b: Int): Int {   // Int 参数,返回值 Int
        return a + b
     }
    

    表达式作为函数体,返回类型自动推断:

    fun sum(a:Int,b:Int)=a+b
    public fun sum(a: Int, b: Int): Int = a + b   
    // public 方法则必须明确写出返回类型
    

    无返回值的函数(类似Java中的void):

    fun sum(a:Int,b:Int) Unit{
         print(a+b)
    }
    

    可变长参数函数

    函数的变长参数可以用 vararg 关键字进行标识:

    fun vars(vararg va:String)//可变长字符串
    {
        for(ch in va) //增强for循环 用in表示区间 并且不需要声明 ch的变量类型会自动转换
        {
            print(ch)
        }
    }
    

    常量 变量

    写法:类型<标识符> : <类型> = <初始化值> 其中的类型指的是:常量或变量

    var a:Int=1  //名称为a的变量,初始值为1
    val b:Int=1  //名称为a的常量,初始值为1 并且不能更改 若被重新赋值则会提示:val cannot be reassigned
    

    注意

    • 常量与变量都可以没有初始化值,但是在引用前必须初始化
    • 编译器支持自动类型判断,即声明时可以不指定类型,由编译器判断。自动判断类型必须是有初始值的情况否则需要声明类型
        //无论var 还是val  用法是一样的
        var varA=1//自动判断类型
    
        var varB:Int//未设置初始值 需要声明类型
        varB=1       // 使用之前需要初始化
    

    字符串模板 $

    $ 表示一个变量名或变量值
    $value 表示一个变量值 $<方法> 表示一个方法的返回值

         //声明a  明确赋值 自动判断类型
         var a = 1
         // 模板中的简单名称:
         val s1 = "a is $a" 
         a = 2
         // 模板中的任意表达式:
         val s2 = "${s1.replace("is", "was")}, but now is $a"
         print(s2)    //输出:a was 1, but now is 2
    

    Null检查机制

    在使用时要进行空判断处理,有两种处理方式,

    • 字段后加!!像Java一样抛出空异常,
    • 字段后加?可不做处理返回值为 null或配合?:做空判断处理
          var age:String?="23"
          //var age:String?=""   //当为“”时 都会抛出类型转换异常 null检查对"" 无效
          //var age:String?=null
          //抛出空指针异常
          //val ages = age!!.toInt()
          //允许为空 输出null
          //val ages=age?.toInt()
          //允许为空 输出默认值20
          val ages=age?.toInt()?:20
          print(ages)
    

    类型检测及自动类型转换

    is 运算符检测一个表达式是否某类型的一个实例(类似于Java中的instanceof关键字

          fun getStringLength(obj: Any): Int? {//返回值可以为null 所以加?
            // 在 `&&` 运算符的右侧, `obj` 的类型会被自动转换为 `String`
            if (obj is String && obj.length > 0)
            return obj.length
            return null
          }
    

    区间

    区间表达式由具有操作符形式 .. 的 rangeTo 函数辅以 in 和 !in 形成。

          for (i in 1..4) print(i) // 输出“1234”
          for (i in 4..1) print(i) // 什么都不输出
    
          if (i in 1..10) { // 等同于 1 <= i && i <= 10
              println(i)
          }
    
          // 使用 step 指定步长
          for (i in 1..4 step 2) print(i) // 输出“13”
    
          for (i in 4 downTo 1 step 2) print(i) // 输出“42”
    
    
          // 使用 until 函数排除结束元素
          for (i in 1 until 10) {   // i in [1, 10) 排除了 10
             println(i)
          }
    

    参考:菜鸟教程

    相关文章

      网友评论

      本文标题:Kotlin 基本语法

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