Kotlin笔记一

239 阅读2分钟

@TOC

函数声明

  • 声明函数要用 ==fun==关键字,就像声明类要用==class==关键字一样
  • 函数参数的参数类型在参数名右边
  • 函数的返回值在函数参数的右边使用:分割,没有返回值时可以省略 声明无返回值的函数
fun main(){
  //...
}

​ 声明有返回值的函数

fun sum(x: Int, y: Int): Int{
  return x + y
}

变量声明

  • 声明变量需要通过关键字,==var== 声明可读可写变量, ==val==声明只读变量

  • 类型在变量名的右边,用==:==分割,如果同时满足类型推断,类型可以省略

  • 创建对象直接调用构造器,不需要==new==关键字

    声明可读可写变量

    var age: Int = 18
    

    声明只读变量

    val name: String = "hello, kotlin!"
    

声明对象

   val user: User = User()

类型推断

在变量声明的基础上,如果表达式右边的类型是可以推断出来,那么类型可以省略:

var age = 18

val name = "Hello, Kotlin!"

val user = User()

继承类/实现接⼝

继承类和实现接⼝都是⽤的 : ,如果类中没有构造器 ( constructor ),需要在⽗

类类名后⾯加上 () :

class MainActivity : BaseActivity(),

View.OnClickListener

空安全设计

Kotlin 中的类型分为「可空类型」和「不可空类型」 不可空类型

val editText : EditText

可空类型

val editText : EditText?

lateinit 关键字

lateinit 只能修饰 var 可读可写变量(思考下为什么)

lateinit 关键字声明的变量的类型必须是「不可空类型」

lateinit 声明的变量不能有「初始值」

lateinit 声明的变量不能是「基本数据类型」

在构造器中初始化的属性不需要 lateinit 关键字 平台类型

在类型后⾯⾯加上⼀个感叹号的类型是「平台类型」

Java 中可以通过注解减少这种平台类型的产⽣

@Nullable 表示可空类型

@NotNull @NonNul l 表示不可空类型 类型判断

is 判断属于某类型

!is 判断不属于某类型

as 类型强转,失败时抛出类型强转失败异常

as? 类型强转,但失败时不会抛出异常⽽是返回 null