kotlin -- 基础语法

147 阅读2分钟

「这是我参与11月更文挑战的第27天,活动详情查看:2021最后一次更文挑战

一、基础语法

1. 定义变量

var 和 val 都可以定义变量

  • var是一个可变变量
  • val是一个只读变量

2. 函数

  • 声明:函数声明关键字为:fun
  • 格式为:可见性修饰符 fun 函数名(参数名 :类型,...) : 返回值{}
fun method(){
   . . .     
}

3. NULL检查机制

Kotlin的空安全设计对于声明可为空的参数,不会报NullPointerException,在使用时要进行空判断处理:

  • ? 当某个变量的值可以为 null 的时候,必须在声明处的类型后添加 ? 来标识该引用可为空
var str : String ? = null
  • !! 非空断言,如果值为 null 就抛出 NullPointerException 空指针异常
  • ?. 空判断,如果不为空就执行方法,如果为空就返回 null
  • ?: null 合并运算符,设置当检查结果为空的时候的返回值
  • as? 安全转换运算符,尝试把值转换成给定的类型,如果类型不合适就返回 null
  • let函数 只有左侧表达式不为空的时候才会调用

4. 区间

开区间
var range = 1..10 //[1,10]
左闭右开
var range = 1 until 10 //[1,10)
倒叙
var range = 10 downTo 1 //[10,9,8,...,1]
步长
var range = 1..10 step 2 //[1,3,5,7,9]
包含
if(2 in range){...}
步长
if(2 !in range){...}

5. 条件与控制

if

if 语句包含一个布尔表达式和一条或多条语句

var value : Int
if (a < b) {
  value = a
} else {
  value = b
}
when

将它的参数和所有的分支条件顺序比较,直到某个分支满足条件

var value : Int
when(a){
  1 -> value = 1
  2 -> value = 2
}

5. 类和继承

类的声明
class Demo {
...
}
构造函数

默认情况下,所有的构造函数都是公开的,有效的,它们可以在任何地方都可见(即一个内部类的构造函数在同一个模块中可见)

class Demo constructor(name:String) {
...
}
类的创建
var demo = Demo() //无参
var demo = Demo("Hello") //有一个构造参数
抽象类

一个类或一些成员可能被声明成 abstract ,一个抽象方法在它的类中没有实现方法