kotlin 尾随Lambda表达式函数的常用简写

写demo测试下:

Kotlin 复制代码
fun invokeFunc(str: String, func: (String) -> Unit) {
    func(str)
}

fun invokeFunc2(str: String, func: () -> String) {
    println(func())
}

fun main() {
    // 普通调用方式,第二个参数可以传lambda表达式:
    invokeFunc("""
    东临碣石,以观沧海。水何澹澹,山岛竦峙。树木丛生,百草丰茂。秋风萧瑟,洪波涌起。
    日月之行,若出其中;星汉灿烂,若出其里。幸甚至哉,歌以咏志。""", {str->println(str)})
    
    // 尾随Lambda表达式的简写调用写法。即当函数最后一个参数是 Lambda‌,以将 Lambda 表达式写在函数调用括号的外面:
    invokeFunc("老骥伏枥,志在千里。烈士暮年,壮心不已。") {str->println(str)}

    // 尾随Lambda表达式的简写调用写法
    invokeFunc2("周公吐哺,天下归心。") {
        println("尾随Lambda表达式的简写调用写法, 这里省略return关键字,返回最后一个表达式的值")
        "力拔山兮气盖世"
    }
}

打印:

ok. compose框架经常使用这种尾随Lambda的简写语法。

相关推荐
SilentSamsara17 小时前
Python 环境搭建完整指南:从下载安装到运行第一个程序
开发语言·python
小短腿的代码世界18 小时前
Qt文件系统与IO深度解析:从QFile到异步文件操作
开发语言·qt
harder32119 小时前
RMP模式的创新突破
开发语言·学习·ios·swift·策略模式
jinanwuhuaguo19 小时前
OpenClaw工程解剖——RAG、向量织构与“记忆宫殿”的索引拓扑学(第十三篇)
android·开发语言·人工智能·kotlin·拓扑学·openclaw
Rust研习社19 小时前
使用 Axum 构建高性能异步 Web 服务
开发语言·前端·网络·后端·http·rust
淘矿人21 小时前
从0到1:用Claude启动你的第一个项目
开发语言·人工智能·git·python·github·php·pygame
cany100021 小时前
C++ -- 模板的声明和定义
开发语言·c++
澈20721 小时前
深耕进阶 Day1:C 与 C++ 核心差异 + C++ 入门基石
c语言·开发语言·c++
Felven21 小时前
C. Need More Arrays
c语言·开发语言
love530love21 小时前
Podman Machine 虚拟硬盘迁移实战二:用 Junction 把 vhdx 从 C 盘搬到其他盘
c语言·开发语言·人工智能·windows·wsl·podman·podman machine