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)
}
相关推荐
Boilermaker19922 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
MM_MS2 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
꧁Q༒ོγ꧂2 小时前
LaTeX 语法入门指南
开发语言·latex
njsgcs2 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_992 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
古城小栈3 小时前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust
ghie90903 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体13 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wuk9983 小时前
VSC优化算法MATLAB实现
开发语言·算法·matlab
AI小怪兽3 小时前
基于YOLOv13的汽车零件分割系统(Python源码+数据集+Pyside6界面)
开发语言·python·yolo·无人机