Kotlin标准函数 一、标准函数标准函数是指Standard.kt文件中定义的函数任何Kotlin代码都可以自由的调用所有标准函数标准函数有很多我们这里主要学习下几个常用的标准函数。1.1 applyapply函数可看作一个配置函数你可以传入一个接收者然后调用一系列函数来配置它以便使用如果提供lambda给apply函数执行它会返回配置好的接收者。fun main() { var map mutableMapOf(帅次 to 18).apply { put(apply-北京,188) put(apply-上海,288) } println(map)//{帅次18, apply-北京188, apply-上海288} }1、创建可变Map2、通过apply()函数添加数据如下咱们启动一个界面并传参val intent Intent(this,NextActivity::class.java).apply { putExtra(name,sc) putExtra(age,19) } startActivity(intent)可以看到调用一个个函数类配置接收者时变量名(map、intent)就省掉了这是因为在lambda表达式里apply能让每个配置函数都作用于接收者这种行为有时又叫做相关作用域因为lambda表达式里的所有函数调用都是针对接收者的或者说它们是针对接收者的隐式调用。1.2 letlet函数能使某个变量作用于其lambda表达式里让it关键字能引用它。let与apply比较let会把接收者传给lambda而apply什么都不传匿名函数执行完apply会返回当前接收者而let会返回lambda的最后一行。var letData 20.let { 不知不觉过去 $it 年了 } println(letData)1.3 alsoalso函数和let函数功能相似和let一样also也是把接收者作为值参传给lambda,但有一点不同:also返回接收者对象而let返回lambda结果。因为这个差异also尤其适合针对同一原始对象利用副作用做事既然also返回的是接收者对象你就可以基于原始接收者对象执行额外的链式调用。//also var alsoData AndroidSHUAICI var strAlso alsoData.also { println(it.length)//14 }.also { println(it.startsWith(Android))//true } println(strAlso)//AndroidSHUAICI1.4 run具备接收者的隐式调用(apply)返回的是lambda的最后一行(let)。//run var str Android帅次 var s str.run { startsWith(Android) } println(s)//true加强版fun main() { var runS str.run { startsWith(Android) println(this)//Android帅次 吼吼哈嘿//这里决定下一个run的this类型 }.run { println(this)//吼吼哈嘿 18//这里的18传入到isAge函数 }.run(::isAge) println(runS)//false } fun isAge(age: Int) age 15从上面看出run支持链式调用run也支持函数引用。1.5 withwith函数是run的变体功能一样但是调用with时需要值参作为其第一个参数传入。var strWith Android帅次 var sWith strWith.run { startsWith(Android) run-$this } println(sWith)//run-Android帅次 sWith with(strWith) { startsWith(Android) with-$this } println(sWith)//with-Android帅次1.6 takelf如果需要判断某个条件是否满足再决定是否可以赋值变量或执行某项任务takelf就非常有用概念上讲takelf函数类似于if语句但它的优势是可以直接在对象实例上调用避免了临时变量赋值的麻烦。takelf函数需要判断lambda中提供的条件表达式给出true或false结果:如果判断结果是true从takelf函数返回接收者对象。如果是false则返回null。val strTakeIf Android帅次 val tkif strTakeIf.takeIf { it.startsWith(Android)//返回true } println(tkif)//Android帅次 var tkifS strTakeIf.takeIf { it.startsWith(Android) }.takeIf { println(Length:${it?.length})//Length:9 it?.length!! 20//返回false } println(tkifS)//null1.7 takeUnlesstakelf辅助函数takeUnless只有判断你给定的条件结果是false时takeUnless才会返回原始接收者对象跟takelf刚好相反val strTakeIfUn Android帅次 val un strTakeIf.takeUnless { it.startsWith(Android)//返回true } println(un)//null var un2 strTakeIfUn.takeUnless { it.startsWith(帅次)//返回false } println(un2)//Android帅次takeUnless函数有点调皮了解一下就行。还是感觉takelf比较好理解和使用。下面给大家分享两份资料字节跳动内部超高质量Kotlin笔记、谷歌大佬编写高级Kotlin强化实战附Demo。一、字节跳动内部超高质量Kotlin笔记1.准备开始基本语法习惯用语编码风格2.基础基本类型包控制流返回与跳转3.类和对象类和继承属性和字段接口可见性修饰词扩展数据对象泛型嵌套类枚举类对象表达式和声明代理模式代理属性4.函数和lambda表达式函数高阶函数与 lambda 表达式内联函数5.其它多重申明Ranges类型检查和自动转换This表达式等式运算符重载空安全异常注解反射动态类型6.互用性动态类型7.工具使用Maven使用 Ant使用 Gradle使用Griffon8.FAQ与java对比与Scala对比需要的朋友只需要你点赞支持然后点击这里免费获取。基础知识掌握之后就是靠实战提升了二、谷歌大佬编写高级Kotlin强化实战附Demo照样目录乘上第一章 Kotlin入门教程Kotlin 概述Kotlin 与 Java 比较巧用 Android Studio认识 Kotlin 基本类型走进 Kotlin 的数组走进 Kotlin 的集合集合问题完整代码基础语法第二章 Kotlin 实战避坑指南方法入参是常量不可修改不要 Companion 、INSTANCE Java 重载在 Kotlin 中怎么巧妙过渡一下Kotlin 中的判空姿势Kotlin 复写 Java 父类中的方法Kotlin “狠”起来连TODO 都不放过is、as 中的坑Kotlin 中的 Property 的理解also 关键字takeIf 关键字takeIf 关键字单例模式的写法第三章 项目实战《Kotlin Jetpack 实战》从一个膜拜大神的 Demo 开始Kotlin 写 Gradle 脚本是一种什么体验Kotlin 编程的三重境界Kotlin 高阶函数Kotlin 泛型Kotlin 扩展Kotlin 委托协程“不为人知”的调试技巧图解协程suspend篇幅有限详细内容就不作完全展示了欢迎大家一键三连若需要此面试题合集直接点击下方CSDN官方认证微信卡片免费领取【保证100%免费】~↓↓↓

相关新闻

最新新闻

从蓝桥杯真题解析“车的放置”:组合数学与回溯算法的实战应用

从蓝桥杯真题解析“车的放置”:组合数学与回溯算法的实战应用

1. 项目概述:从一道蓝桥杯真题看“车的放置”问题最近在整理蓝桥杯的备赛资料,翻到了ALGO-996这道题——“车的放置”。这题目名字听起来平平无奇,不就是国际象棋里“车”(Rook)的摆放问题吗?但真正上手去解…

2026/8/27 12:28:09
2022企业级《Android架构开发学习手册》,安卓框架学习教材

2022企业级《Android架构开发学习手册》,安卓框架学习教材

上周我在各大技术社区 发表了一篇 《Jetpack MVVM 精讲》,原以为在知识网红唱衰安卓的2022会无人问津,没想到文章一经发布,从国内知名大厂的架构师、技术经理,到世界级公司的Android 开发都在看。从读者的反馈来看,近期…

2026/8/27 12:28:09
Kiro AI开发框架:从意图驱动到全流程融入实战解析

Kiro AI开发框架:从意图驱动到全流程融入实战解析

如果你最近关注 AI 编程工具,会发现一个明显的趋势:仅仅把大模型接到 IDE 里已经不够了,社区讨论的重心正在从“模型能写多少代码”转向“模型能不能真正融入开发流程”。GPT-5.6 进入大众视野的同时,Kiro 这个 AI 开发框架也频繁…

2026/8/27 12:28:09
蓝桥杯ALGO-939解析:线段树维护动态区间最大子段和

蓝桥杯ALGO-939解析:线段树维护动态区间最大子段和

1. 项目概述:从一道蓝桥杯真题看区间问题的实战解法最近在带学生备赛蓝桥杯,刷题过程中遇到了ALGO-939这道“区间最大和”问题。这题目名字听起来平平无奇,不就是求个最大子数组和嘛,很多初学者可能觉得用个简单的动态规划&#x…

2026/8/27 12:28:09
《Android Framework开发指南》最新版本,腾讯技术团队出品,含26万字、109个知识点

《Android Framework开发指南》最新版本,腾讯技术团队出品,含26万字、109个知识点

今年以来,程序员的就业形势更加严峻,尤其从事 Android 开发的人,或多或少都被行业寒冬所波及。有了解最新的招聘消息的就会发现,现在企业对于Android开发岗位的要求越来越高,特别是一线互联网大厂,已经将Fr…

2026/8/27 12:28:09
小龙虾 AI OpenClaw 上手教程,不用配置环境快速搭建电脑自动化助手

小龙虾 AI OpenClaw 上手教程,不用配置环境快速搭建电脑自动化助手

Windows 部署 OpenClaw 实操|搭建本地 AI 自动化智能体,跳过繁琐环境配置 前言 OpenClaw,圈内被大家叫做小龙虾,是近期开源社区热度居高不下的 AI 数字员工项目,GitHub 星标数量达到 28 万 。和普通的对话式 AI 不一…

2026/8/27 12:23:09