ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

Kotlin标准函数

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%免费】~↓↓↓
返回列表