当前位置: 首页 > article >正文

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

一、Kotlin

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

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

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


二、Kotlin 极简小抄

1、函数
  1. 无参无返回值函数
fun test1() {
    println("hello test1")
}

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

    println("outer")

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

    inner()
}
3、函数赋值给变量
  1. 通过函数引用赋值给变量
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. 通过匿名函数赋值给变量
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 表达式赋值给变量
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、内联函数
inline fun sum(a: Int, b: Int): Int {
    return a + b
}

fun main() {

    // 在编译时,Kotlin 编译器会尝试将 sum 函数的调用直接替换为函数体内的代码,即 a + b
    // 内联函数主要用于性能优化
    val result = sum(1, 2)
    println(result)
}

http://www.kler.cn/a/314792.html

相关文章:

  • 【Linux】-学习笔记03
  • uniapp使用scroll-view下拉刷新与上滑加载
  • AutoCad 无界面开发
  • 【嵌入式开发】单片机CAN配置详解
  • Flink_DataStreamAPI_输出算子Sink
  • gpu-V100显卡相关知识
  • LeetCode 第416场周赛个人题解
  • springbootweb集成swagger
  • 王道考研视频——操作系统笔记
  • 海外服务器哪个速度最快且性能稳定
  • GRE隧道在实际部署中的优化、局限性与弊端
  • 排序篇(七大基于比较的排序算法)
  • 华为全联接大会HC2024 观会感
  • QMT获取可转债行情数据方法介绍!支持QMT量化软件的券商平台?
  • Oracle(140)如何创建和管理数据库角色?
  • Android14 蓝牙启动流程
  • C++编程语言:基础设施:命名空间(Bjarne Stroustrup)
  • 基于微信小程序的购物系统+php(lw+演示+源码+运行)
  • App端测——稳定性测试
  • 笔记整理—内核!启动!—linux应用编程、网络编程部分(1)API概述与文件I/O
  • 互联网技术的持续演进:从现在到未来
  • 开放的数据时代:Web3和个人隐私的未来
  • 自动化流程机器人(RPA)
  • 计算机图形学 中心画圆算法 原理及matlab代码实现
  • 『功能项目』QFrameWorkBug拖拽功能【66】
  • SpringBootWeb增删改查入门案例