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方法相关推荐

  1. [译] Kotlin 标准方法备忘

    原文地址:Kotlin Standard Functions cheat-sheet 原文作者:Jose Alcérreca 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/go ...

  2. JS中的call()方法和apply()方法用法总结

    1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖 ...

  3. Angular的ChangeDetectorRef.detectChanges()实现angularJS的$apply()方法,强制刷新数据渲染

    在Javascript代码里,都是按照一定顺序来执行的,当轮到一个代码片段执行的时候,浏览器就只会去执行当前的片段,不会做任何其他的事情.所以有时候一些做得不是很好的网页,当点击了某个东西之后会卡住, ...

  4. Angularjs $scope 里面的$apply 方法 和 $watch 方法

    Angularjs $scope 里面的$apply 方法 和 $watch 方法 学习要点: 1. Angularjs $scope 里面的$apply 方法 2. Angularjs $scope ...

  5. Pandas中map,applymap和apply方法之间的区别

    本文翻译自:Difference between map, applymap and apply methods in Pandas Can you tell me when to use these ...

  6. 【Android Gradle 插件】Module 目录下 build.gradle 配置文件 ( plugins 闭包代码块中引入插件 | PluginAware#apply 方法引入插件 )

    文章目录 一.Module 目录下 build.gradle 配置文件 1.plugins 闭包代码块中引入插件 2.PluginAware#apply 方法引入插件 Android Plugin D ...

  7. 《ES6基础教程》之 Call 方法和 Apply 方法

    1 <script type="text/javascript"> 2 // Call方法: 3 // 语法:call(thisObj[,arg1,arg2,...,a ...

  8. Scala类的定义,主/辅构造器,以及方法中的变量定义,单例对象,伴生对象,Apply方法调用,应用程序对象

    1. 类 1.1. 类的定义 package cn.toto.scala.day2/*** 在Scala中,类并不用声明为public类型的.* Scala源文件中可以包含多个类,所有这些类都具有共有 ...

  9. windows 改变文件大小 函数_手写 bind call apply 方法 与 实现节流防抖函数

    实现 bind call apply 方法 this 是什么? this是指包含它的函数作为方法被调用时所属的对象.这句话理解起来感觉还是很拗口的,但是如果你把它拆分开来变成这三句话后就好理解一点了. ...

最新文章

  1. csdn上传资源提示“该资源已存在,请重新上传”
  2. EntityFramework之原始查询及性能优化(六)
  3. intel服务器修复两个漏洞,游戏厂商:修复Intel处理器漏洞后 服务器超卡
  4. Shell命令-关机重启及注销之logout、exit
  5. WebService部署时提示:HTTP错误 404.3-Not Found,如果该页面是脚本,请添加处理程序,如果应下载文件,请添加MIME映射
  6. 第一百三十节,JavaScript,封装库--连缀
  7. Android AutoFocusCallback is not being called or not returning
  8. Java API概述及应用
  9. android mimetype类型,如何确定android中的MIME类型?
  10. 【中台实践】华为大数据中台架构分享.pdf
  11. java相对应的键盘输入_Java 实现输入键盘上任意键显示出相对应的ASCII
  12. Setup JIRA Service Desk 3.9.2 on Oracle Linux 6.8
  13. distributeed 1.21.8 requires msgpack,which is not installed 分布式1.21.8需要msgpack,未安装
  14. Java_接口练习题
  15. win linux批处理删除指定N天前文件夹的文件
  16. 关于使用GHOST进行磁盘对拷整盘镜像以及镜像恢复的一些注意事项
  17. 【SIGIR2017满分论文】IRGAN:大一统信息检索模型的博弈竞争
  18. linux上删除rime方案_Linux中Rime输入法安装使用小结
  19. 无限极分类php实现—查子孙树、家谱树
  20. 股指期货风险管理实证研究——以2015年股灾为例实证分析/VaR/EViews

热门文章

  1. Pycharm工具Python开发自动添加注释(详细)
  2. 2016中国电影票房增长跌至个位数,原因何在?
  3. 用InternetOpen()的下载文件
  4. C++知识进阶之#defines使用优化
  5. Oracle Parallel使用
  6. 电影推荐系统 基于内容相似度的召回
  7. [0CTF 2016]piapiapia总结(PHP序列化长度变化导致尾部字符逃逸)
  8. 开源两大阵营告诉你开源License的根本区别
  9. swift conversion方法
  10. RFID物流仓储应用解决方案-铨顺宏