Kotlin apply方法
apply方法可以将多个步骤合并。可以提前做一些配置。非常的好用。
例如下面的代码,代码一是用传统的方式实现了一个只读文件的配置,代码二将这段代码封装到了apply里面,相比第一种,好处就是代码集中,结构清晰。
这里有几个需要解释的点。
1.apply会把this传入lambda表达式,也就是{}里面,也就是代码一的file变量。
2.apply返回file自身。
fun main() {//代码一var file = File("test.txt");file.setExecutable(true)file.setReadable(true)file.setWritable(false)//代码二var readOnlyfile = file.apply() {setExecutable(true)setReadable(true)setWritable(false)}readOnlyfile.mkdir();
}
Kotlin apply方法相关推荐
- [译] Kotlin 标准方法备忘
原文地址:Kotlin Standard Functions cheat-sheet 原文作者:Jose Alcérreca 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/go ...
- JS中的call()方法和apply()方法用法总结
1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖 ...
- Angular的ChangeDetectorRef.detectChanges()实现angularJS的$apply()方法,强制刷新数据渲染
在Javascript代码里,都是按照一定顺序来执行的,当轮到一个代码片段执行的时候,浏览器就只会去执行当前的片段,不会做任何其他的事情.所以有时候一些做得不是很好的网页,当点击了某个东西之后会卡住, ...
- Angularjs $scope 里面的$apply 方法 和 $watch 方法
Angularjs $scope 里面的$apply 方法 和 $watch 方法 学习要点: 1. Angularjs $scope 里面的$apply 方法 2. Angularjs $scope ...
- Pandas中map,applymap和apply方法之间的区别
本文翻译自:Difference between map, applymap and apply methods in Pandas Can you tell me when to use these ...
- 【Android Gradle 插件】Module 目录下 build.gradle 配置文件 ( plugins 闭包代码块中引入插件 | PluginAware#apply 方法引入插件 )
文章目录 一.Module 目录下 build.gradle 配置文件 1.plugins 闭包代码块中引入插件 2.PluginAware#apply 方法引入插件 Android Plugin D ...
- 《ES6基础教程》之 Call 方法和 Apply 方法
1 <script type="text/javascript"> 2 // Call方法: 3 // 语法:call(thisObj[,arg1,arg2,...,a ...
- Scala类的定义,主/辅构造器,以及方法中的变量定义,单例对象,伴生对象,Apply方法调用,应用程序对象
1. 类 1.1. 类的定义 package cn.toto.scala.day2/*** 在Scala中,类并不用声明为public类型的.* Scala源文件中可以包含多个类,所有这些类都具有共有 ...
- windows 改变文件大小 函数_手写 bind call apply 方法 与 实现节流防抖函数
实现 bind call apply 方法 this 是什么? this是指包含它的函数作为方法被调用时所属的对象.这句话理解起来感觉还是很拗口的,但是如果你把它拆分开来变成这三句话后就好理解一点了. ...
最新文章
- csdn上传资源提示“该资源已存在,请重新上传”
- EntityFramework之原始查询及性能优化(六)
- intel服务器修复两个漏洞,游戏厂商:修复Intel处理器漏洞后 服务器超卡
- Shell命令-关机重启及注销之logout、exit
- WebService部署时提示:HTTP错误 404.3-Not Found,如果该页面是脚本,请添加处理程序,如果应下载文件,请添加MIME映射
- 第一百三十节,JavaScript,封装库--连缀
- Android AutoFocusCallback is not being called or not returning
- Java API概述及应用
- android mimetype类型,如何确定android中的MIME类型?
- 【中台实践】华为大数据中台架构分享.pdf
- java相对应的键盘输入_Java 实现输入键盘上任意键显示出相对应的ASCII
- Setup JIRA Service Desk 3.9.2 on Oracle Linux 6.8
- distributeed 1.21.8 requires msgpack,which is not installed 分布式1.21.8需要msgpack,未安装
- Java_接口练习题
- win linux批处理删除指定N天前文件夹的文件
- 关于使用GHOST进行磁盘对拷整盘镜像以及镜像恢复的一些注意事项
- 【SIGIR2017满分论文】IRGAN:大一统信息检索模型的博弈竞争
- linux上删除rime方案_Linux中Rime输入法安装使用小结
- 无限极分类php实现—查子孙树、家谱树
- 股指期货风险管理实证研究——以2015年股灾为例实证分析/VaR/EViews