基本语法

定义包

package my.demo
import java.util.*
// …… 

定义函数

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

将表达式作为函数体、返回值类型⾃动推断的函数:

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

函数返回⽆意义的值:

fun printSum(a: Int, b: Int): Unit {
    println("sum of $a and $b is ${a + b}") 
}

Unit 返回类型可以省略

fun printSum(a: Int, b: Int) {
    println("sum of $a and $b is ${a + b}") 
} 

定义局部变量

⼀次赋值(只读)的局部变量:

val a: Int = 1  // ⽴即赋值
val b = 2   // ⾃动推断出 `Int` 类型
val c: Int  // 如果没有初始值类型不能省略
c = 3       // 明确赋值 

可变变量:

var x = 5 // ⾃动推断出 `Int` 类型    
x += 1 

注释

正如 Java 和 JavaScript, Kotlin ⽀持⾏注释及块注释。

// 这是⼀个⾏注释 
/* 这是⼀个多⾏的   块注释。 */ 

与 Java 不同的是, Kotlin 的块注释可以嵌套。

使⽤字符串模板

var a = 1    // 模板中的简单名称:    
val s1 = "a is $a"         
a = 2    // 模板中的任意表达式:    
val s2 = "${s1.replace("is", "was")}, but now is $a" 

使⽤条件表达式

fun maxOf(a: Int, b: Int): Int {
    if (a > b) {
        return a
    } else {
        return b
    } } 

使⽤ if 作为表达式:

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

使⽤可空值及 null 检测

当某个变量的值可以为 null 的时候,必须在声明处的类型后添加 ? 来标识该引⽤可为空。 如果 str 的内容不是数字返回 null:

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

使⽤返回可空值的函数:

fun printProduct(arg1: String, arg2: String) {
    val x = parseInt(arg1)
    val y = parseInt(arg2)    // 直接使⽤ `x * y` 可能会报错,因为他们可能为 null
    if (x != null && y != null) {        // 在空检测后, x 和 y 会⾃动转换为⾮空值(non-nullable)
        println(x * y) 
   }
    else {
        println("either '$arg1' or '$arg2' is not a number")
    }    
} 

你可能感兴趣的:(基本语法)