Kotlin 极简小抄 P3(函数、函数赋值给变量)

一、Kotlin

  1. Kotlin 由 JetBrains 开发,是一种在 JVM(Java 虚拟机)上运行的静态类型编程语言

  2. Kotlin 旨在提高开发者的编码效率和安全性,同时保持与 Java 的高度互操作性

  3. Kotlin 是 Android 应用开发的首选语言,也可以与 Java 一样用于服务器端开发


二、Kotlin 极简小抄

1、函数
  1. 无参无返回值函数
kotlin 复制代码
fun test1() {
    println("hello test1")
}

fun test2(): Unit {
    println("hello test2")
}
  1. 有参无返回值函数
kotlin 复制代码
fun showSum(a: Int, b: Int) {
    println(a + b)
}
  1. 无参有返回值函数
kotlin 复制代码
fun getNum(): Int {
    return 10
}
  1. 有参有返回值函数
kotlin 复制代码
fun getSum(a: Int, b: Int): Int {
    return a + b
}
2、嵌套函数
kotlin 复制代码
fun outer() {

    println("outer")

    fun inner() {
        println("inner")
    }

    inner()
}
3、函数赋值给变量
  1. 通过函数引用赋值给变量
kotlin 复制代码
fun sum(a: Int, b: Int): Int {
    return a + b
}

var handle1: (Int, Int) -> Int = ::sum
println(handle1(1, 2))

// 自动推断类型
var handle2 = ::sum
println(handle2(3, 4))
  1. 通过匿名函数赋值给变量
kotlin 复制代码
val handle1: (Int, Int) -> Int = fun(a: Int, b: Int): Int {
    return a + b
}
println(handle1(1, 2))

val handle2: (Int, Int) -> Int = fun(a: Int, b: Int): Int = a + b
println(handle2(3, 4))

// 自动推断类型
val handle3 = fun(a: Int, b: Int): Int = a + b
println(handle3(5, 6))
  1. 通过 Lambda 表达式赋值给变量
kotlin 复制代码
val handle1: (Int, Int) -> Int = { x, y -> x * y }
println(handle1(1, 2))

// 自动推断类型
val handle2 = { x: Int, y: Int -> x * y }
println(handle2(3, 4))
4、内联函数
kotlin 复制代码
inline fun sum(a: Int, b: Int): Int {
    return a + b
}

fun main() {

    // 在编译时,Kotlin 编译器会尝试将 sum 函数的调用直接替换为函数体内的代码,即 a + b
    // 内联函数主要用于性能优化
    val result = sum(1, 2)
    println(result)
}
相关推荐
alexhilton2 小时前
使用Android Archive进行打包
android·kotlin·android jetpack
badhope4 小时前
做了几年安卓开发,这些坑我帮你踩过了
android·android studio
逐光老顽童2 天前
Java 与 Kotlin 混合开发避坑指南:30 个真实案例实录
android·kotlin
爱勇宝3 天前
鸿蒙生态的下半场:开发者不只要能开发,还要能赚钱
android·前端·程序员
Yeyu3 天前
刷新一帧的艺术:invalidate / postInvalidate / postInvalidateOnAnimation全解析
android
潘潘潘3 天前
Android OTA 升级原理和流程介绍
android
plainGeekDev3 天前
null 判断 → Kotlin 可空类型
android·java·kotlin
plainGeekDev3 天前
getter/setter → Kotlin 属性
android·java·kotlin
Junerver3 天前
我写了一个 Compose Multiplatform 组件库,你可能会用到
kotlin·android jetpack
YXL1111YXL3 天前
Handler 消息回收与协程异步执行的时序陷阱
android