Kotlin基本语法一

上一篇介绍了 Android Studio安装Kotlin插件和使用,本篇介绍Kotlin基本语法。

一 变量(var)和常量(val)

Kotlin 语言声明一个变量使用关键字var,声明一个常量使用val,声明时如果没有指定类型可以自动推测出字段类型

1 常量 (val)
  val a: Int = 1 // 定义常量时进行赋值
  val b = 2  // 自动推测常量类型为 Int
  val c: Int // 不提供初始化时需要定义常量类型
  c = 3    // 定义常量后再赋值

注意 :只能被赋值一次

val 常量 赋值多次会报错编译通不过,如下图所示。

这里写图片描述

2 变量 (var)

可以对变量进行多次赋值。

 val a: Int = 1 // 定义变量时进行赋值
 var x = 5 // 推断变量类型为 Int
  x += 1

注意事项

  1. 常量与变量都可以没有初始化值,但是在引用前必须初始化。
  2. 编译器支持自动类型判断,即声明时可以不指定类型,由编译器判断。

二 字符串模板

字符串模板,可以包含一些小段代码,会把求值结果合并到字符串中。模板表达式以美元符($)开头:

  1. $ 表示一个变量名或者变量值。
  2. $varName 表示变量值。
  3. ${varName.fun()} 表示变量的方法返回值。

看个例子

    fun mouldTest(){
        var a = 1
        // 模板中的变量
        val s1 = "a is $a"
        println(s1)

        a = 2
        // 模板中的表达式
        val s2 = "${s1.replace("is","was")} ,but now is $a"
        println(s2)

    }

输出结果如下:

 a is 1
 a was 1 ,but now is 2

三 NULL检查机制

Kotlin 是空指针安全的,Kotlin的空安全设计对于声明可为空的参数,在使用时要进行空判断处理,有两种处理方式

  1. 字段后加!!像Java一样抛出空异常。
  2. 另一种字段后加?可不做处理返回值为 null或配合?:做空判断处理。

看个例子

    //类型后面加?表示可为空
    var age: String? = "27"

    //抛出空指针异常
    val age1 = age!!.toInt()

    //不做处理返回 null
    val age2 = age?.toInt()

    //age为空返回-1
    val age3 = age?.toInt() ?: -1

    //只会在files不为空时执行。
    println(files?.size)


    //当data不为空的时候,执行语句块
    data?.let{
        //... 
    }

    //相反的,以下代码当data为空时才会执行
    data?:let{
        //...
    }

当一个引用可能为 null 值时, 对应的类型声明必须明确地标记为可为 null。
当 str 中的字符串内容不是一个整数时, 返回 null:

fun parseInt(str: String): Int? {
  // ...
}

四 方法(函数)

4.1 函数声明

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

// 2个 Int 类型 参数,返回值 为Int类型
fun sum(a: Int, b: Int): Int {   
    return a + b
}

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

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

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

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

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


// 如果是返回 Unit类型,则可以省略(对于public方法也是这样):
public fun printSum(a: Int, b: Int) { 
    print(a + b)
}

4.4 函数的默认参数

使用默认参数来实现重载类似的功能

fun say(str: String = "hello"): String = str

这时候你可以调用say(),来得到默认的字符串 “hello”,也可以自己传入参数say(“world”)来得到传入参数值。

4.5 可变长参数函数

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

同 Java 的变长参数一样,Kotlin 也支持变长参数

//在Java中,我们这么表示一个变长函数

public boolean hasEmpty(String... strArray){
    for (String str : strArray){
        if ("".equals(str) || str == null)
            return true;
    }
    return false;
}

//在Kotlin中,使用关键字vararg来表示

fun hasEmpty(vararg strArray: String?): Boolean{
    for (str in strArray){
        if ("".equals(str) || str == null)
            return true 
    }
    return false
}

猜你喜欢

转载自blog.csdn.net/zhangqilugrubby/article/details/73163787