【Kotlin】标准库函数 ③ ( with 标准库函数 | also 标准库函数 )
文章目录
- 一、with 标准库函数
- 二、also 标准库函数
Kotlin 语言中 , 在 Standard.kt 源码中 , 为所有类型定义了一批标准库函数 , 所有的 Kotlin 类型都可以调用这些函数 ;
一、with 标准库函数
with 函数 与 run 函数 功能是一样的 ,
其使用形式不同 , with 函数是 独立使用的 ,
调用时 , 需要 将 接收者实例对象 作为 with 函数的 参数 ;
with 函数原型 :
/*** 以给定的[receiver]作为接收者调用指定的函数[block]并返回其结果。** 有关详细使用信息,请参阅[scope functions]的文档* (https://kotlinlang.org/docs/reference/scope-functions.html#with)。*/
@kotlin.internal.InlineOnly
public inline fun <T, R> with(receiver: T, block: T.() -> R): R {contract {callsInPlace(block, InvocationKind.EXACTLY_ONCE)}return receiver.block()
}
with 函数的第一个参数是 receiver: T 接收者 ,
第二个参数是 block: T.() -> R , 是 T.() -> R 类型的 Lambda 表达式 ;
代码示例 :
fun main() {val str = with("hello") {capitalize()}println(str)
}
执行结果 :
Hello
上述 with 函数的执行效果与下面的 run 函数执行效果是相同的 ;
代码示例 :
fun main() {val str = "hello".run {capitalize()}println(str)
}
执行结果 :
Hello
二、also 标准库函数
also 函数 功能与 let 函数 功能 类似 ;
also 函数 将 接收者 ( 函数调用者 ) 作为参数传递给 Lambda 表达式参数 ,
并返回 接收者实例对象本身 ;
also 函数 与 let 函数 返回值不同 ,
also 函数 返回 接收者对象本身 ,
let 函数 返回 Lambda 表达式的最后一行 ;
also 函数 返回 接收者对象本身 , 那么就可以使用该特性 , 对 接收者 执行 函数式编程的 链式调用 ;
代码示例 :
fun main() {val str = "hello".also {println(it)}.also {// 该对象的生命周期仅限于该闭包println(it.capitalize())}// 最终打印的是最初的 接收者对象println(str)
}
执行结果 :
hello
Hello
hello
【Kotlin】标准库函数 ③ ( with 标准库函数 | also 标准库函数 )相关推荐
- 内控体系建设五步骤_进一步完善环境保护标准体系建设 ——《国家环境保护标准“十三五”发展规划》解读...
◆中国环境报记者郭薇 为进一步完善环境保护标准体系,充分发挥标准对改善环境质量.防范环境风险的积极作用,在充分总结"十二五"环境保护标准工作基础上,环境保护部近日印发了<国家 ...
- 2020身高体重标准表儿童_2020年儿童标准身高体重表发布,对比看看,你家孩子达标了吗?...
下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 说起孩子的身高,恐怕没有父母不关注.尤其到了春天,长高的"黄金季"来了,都恨不得孩子在这个 ...
- 江苏省高中计算机课程标准,教育部普通高中信息技术课程标准
目 录Fyy江苏省大港中学 一.课程性质Fyy江苏省大港中学 二.课程的基本理念Fyy江苏省大港中学 三.课程设计思路Fyy江苏省大港中学 四.课程目标Fyy江苏省大港中学 五.内容标准Fyy ...
- php集成paypal接口,PHP中集成PayPal标准支付,php集成paypal标准_PHP教程
PHP中集成PayPal标准支付,php集成paypal标准 PayPal支付功能其实一直在更新文档和接口,这里说的是一个简单的支付功能大概流程如下 1,在网站的结账页面,设置一个提交到PayPal网 ...
- 团体标准的意义,办理团体标准的好处
国家鼓励社会团体(学会.协会.商会.联合会等)按照一定的程序制定团体标准.团体标准有哪些好处呢? 办理团体标准的好处及意义: 1.提高企业品牌影响力和竞争力: 2.引领行业发展,并有机会申报国家级奖项 ...
- C++标准库分析总结(一)——<标准库简介>
目录 1 你应该具备的基础 1.1 你应该具备的基础 1.2 我们的目标 2 标准库介绍 2.1 C++标准库与C++标准模板库二者关系及表现形式 2.2 STL六大部件 2.3 STL的简单使用 2 ...
- 计算机b级机房建设标准,A类机房建设标准和B类机房建设标准【全国施工】
选择机房位置时,应远离强噪声源.粉尘.油烟.有害气体,避开强电磁场干扰.机房.走廊等有关地段的土建工程须全部竣工,室内墙壁充分干燥.机房主要门的大小应满足设备的搬运需要,房门锁和钥匙齐全.具备通风设备 ...
- 信息网络传播中的服务器标准,信息网络传播行为的界定标准研究
摘要: 网络技术的发展日新月异,具体保护问题也更复杂多变.网络传播技术的便捷性,隐秘性也使得网络环境下的著作权侵权事件时有发生.现阶段规范有效处理信息网络传播行为的界定标准(以下简称界定标准)之争,明 ...
- paypal for php,PayPal网站付款标准版(for PHP),paypal标准版_PHP教程
PayPal网站付款标准版(for PHP),paypal标准版 简单整理一下PHP项目整合PayPal支付功能. 一.表单的构建: form> 二.IPN验证部分 phpclasspaypal ...
- JS UMD深入学习(二)—— node_module是commonjs标准,工程目录是ES6标准
文章目录 问题描述 如何将自己的组件适应nodejs 和 浏览器两个环境? UMD 代码模板 node_module是nodejs环境,代码是浏览器环境 场景:在src目录下编写一个UMD 模块作为配 ...
最新文章
- Java排序算法——希尔排序
- Science背靠背: NLR受体介导植物抗病反应新机制
- R语言使用geompointdensity包的geom_pointdensity函数将散点图和密度图结合起来、使用viridis包的scale_color_virdis函数为密度数据添加调色板色彩渐变
- BZOJ3075[USACO 2013 Mar Gold 3.Necklace]——AC自动机+DP
- 遗传算法在JobShop中的应用研究(part1: 绪论)
- 一个还不错的源码解析网站
- 【Tiny4412】Tiny4412编译和烧写uboot
- 小程序FMP优化实录,大厂面试题汇总
- python实现归并排序
- python api框架 hook_python学习之hook钩子的原理和使用
- 简述软件黑盒测试的方法,简述什么是黑盒测试方法
- Duplicate Net Names Wire Net......
- div水平垂直居中的常用方法
- 人脸识别活体检测技术
- Excel中数据截取
- 种草营销这样干 小红书KOC素人和KOL达人组合种草推广
- 5G云游戏革命风云已起,各方势力谁执牛耳
- 修改文件后是否需要重启服务器
- 【Django】settings
- pythonpost请求修改编码格式_Python请求编码POST d