Kotlin 基本语法

Kotlin 基本语法_第1张图片
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 基本语法)