, 觉得用法这么像, 为什么弄出多个名字, 不过仔细看看嘛, 还是略有不同的, 待我慢慢道来....kotlin中, run, let, with, apply, also, 都是标准库的函数, 它的实现可以直接在IDE上跳转看到, 也可以在这里看: Standard.kt 看这些函数的实现, 会发现它们非常短...., 它是kotlin的extension的一个用法: 确切说, 这个run是一个generic extension函数, 对于任何类型T, 扩展了run这个方法, 参数类型是签名”T.() -> R”...关于kotlin extension的更详细介绍, 可以查看官网文档 this上下文差异是这两个run用法最大的不同 let函数 - public inline fun T.let(block: (T...return this } 剩下apply和also两个函数, 他们和run, let的实现又非常相似 apply和T.run的block参数的上下文一致 also和T.let的block参数的上下文一致
Created by Wang, Jerry on Jan 19, 2017 time out Timeout
# how is is_propert_readonly of CL_CRM_BOL_ENTITY implemented
Created by Wang, Jerry, last modified on Jun 02, 2016
读取相关的interaction object: ? 检查是否应该搜索interaction object: ? ? ? table: crmc_io_appl ?...最后和appointment不相关的interaction object从结果集中移除: ?
常见场景的使用 let 处理需要针对一个可null的对象统一做判空处理 private var textView: TextView?...,可以省去类名重复,直接调用类的方法即可 var bean=Bean("小米",12) //没使用 with前 var s1=bean.name+bean.age...with函数传入对象判空问题,在run函数中可以像let函数一样做判空处理 apply 整体作用功能和run函数很像,唯一不同点就是它返回的值是对象本身,而run函数是一个闭包形式返回,返回的是最后一行的值...正是基于这一点差异它的适用场景稍微与run函数有点不一样。apply一般用于一个对象实例初始化的时候,需要对对象中的属性进行赋值。...also 适用于let函数的任何场景,also函数和let很像,只是唯一的不同点就是let函数最后的返回值是最后一行的返回值而also函数的返回值是返回当前的这个对象。一般可用于多个扩展函数链式调用
我了方便大家阅读很不至于疲劳我们把整个拆分为两步分,接着下部分我们将with with with同样也是标准库的一个扩展,不同的是它不是功能性的扩展,他只是起一个承接的作用方便大家标识和转呈 fun...,然后使用apply进行其余属性的初始化赋值 also 与apply类似also也是对实例的扩展,它同样执行的是block和进行返回。...val age: Int, val about: String) val jacke = Person("Jack", 30, "Amdroid developer") .also..., "Amdroid developer") .also { print("$it") } with(Person()) {...= 30 about = "iOS/Android developer" }.run { hell() } }.also
also 从1.1新增的方法 public inline fun T.also(block: (T) -> Unit): T { block(this); return this } 感觉是...apply 之于run 的,also至于let的存在。...doChangeMp(it) println(it.getMpValue()) //3.最后一行返回值返回自己 it } m.also...官网上的例子: fun Block.copy() = Block().also { it.content = this.content } 其他 T.apply{}和T.run{}其实是一样的。...apply`只是将本身做了强制的返回。 T.also{}和T.let{}其实是一样的。also只是将本身做了强制的返回。 with(T){}和T.run{}其实是一致的。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
1、普通写法和扩展函数 with和T.run 看起来很相似,并且它们的功能也类似。...run { javaScriptEnabled = true databaseEnabled = true } 这时候,使用T.run扩展功能是比较好的,因为我们可以在使用前检查可空性。...let { println("The length of this String is ${it.length}") } 如果你查看T.run的函数签名,你会发现T.run只是作为扩展函数调用...而对于T.let的函数签名,你会发现T.let正在传递它自己,即block:(T)。因此,这就像一个lambda参数传递。在它的作用域范围内被称为it。...intent=Intent() intent.action=actionData intent.data=Uri.parse(datas) return intent } //改进后的写法
apply{ //sectionArticle不为空的时候操作sectionArticle } 六、内联扩展函数之also 1、also函数使用的一般结构 object.also{ //todo...(block: (T) - Unit): T { block(this); return this } 3、also函数的inline结构分析 also函数的结构实际上和let很像唯一的区别就是返回值的不一样...而also函数返回的则是传入对象的本身 4、also函数编译后的class文件 //kotlin fun main(args: Array<String ) { val result = "testLet...函数<em>的</em>适用场景 适用于let函数<em>的</em>任何场景,<em>also</em>函数和let很像,只是唯一<em>的</em>不同点就是let函数最后<em>的</em>返回值是最后一行<em>的</em>返回值而<em>also</em>函数<em>的</em>返回值是返回当前<em>的</em>这个对象。...2、动态inflate出一个XML<em>的</em>View<em>的</em>时候需要给View绑定数据也会用到. 3、一般可用于多个扩展函数链式调用 4、数据model多层级包裹判空处理<em>的</em>问题 <em>also</em> fun T.<em>also</em>(block
kotlin十分简便系统为我们提供了一些十分简便的标准库扩展,今天我们就看看这些常规的使用频率比较高的能帮助我们加速开发的标准库吧 let 对于学习Kotlin这门语言的人来说肯定都知道其一个特点--...不停的使用if判断显然是不合乎设计的,于是我么的let应运而生 The Kotlin standard library function let can be used for scoping and...对于基本的用法和let一样都是内部执行一个闭包并返回自身数据。...不同的是run内部走的是一个this的引用,这要说明了内部你可以直接调用对已实例自身的方法 fun runFun() { fun getNullableLengt(ns: String) {...this是完全可以省略的,我们只是为了让大家看的明显才吧对应的this添加进去而已
链式操作的用法 所以,从表面上看,Promise只是能够简化层层回调的写法,而实质上,Promise的精髓是“状态”,用维护状态、传递状态的方式来使得回调函数能够及时调用,它比传递callback函数要简单...reject的用法 到这里,你应该对“Promise是什么玩意”有了最基本的了解。那么我们接着来看看ES6的Promise还有哪些功能。我们光用了resolve,还没用reject呢,它是做什么的呢?...catch的用法 我们知道Promise对象除了then方法,还有一个catch方法,它是做什么用的呢?...all的用法 Promise的all方法提供了并行执行异步操作的能力,并且在所有异步操作执行完后才执行回调。...race的用法 all方法的效果实际上是「谁跑的慢,以谁为准执行回调」,那么相对的就有另一个方法「谁跑的快,以谁为准执行回调」,这就是race方法,这个词本来就是赛跑的意思。
函数的 参数 ; with 函数原型 : /** * 以给定的[receiver]作为接收者调用指定的函数[block]并返回其结果。...(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()) }
以及 also,这五个函数的工作方式可以说非常相似,但是我们需要了解的是这5种函数的差异,以便在不同的场景更好的利用它。...但是,apply 和下面查看的 also 返回 T。...also inline fun T.also(block: (T) -> Unit): T also是 T 的扩展函数,返回值与apply一致,直接返回T。...also函数的用法类似于let函数,将对象的上下文引用为“it”而不是“this”以及提供空安全检查方面。 因为T作为block函数的输入,可以使用also来访问属性。...所以,在不使用或不改变对象属性的情况下也使用also。
大家好,又见面了,我是你们的朋友全栈君。...Mutex中提供了WiteOne,ReleaseMutex 两个实例方法~ WiteOne的作用是”阻塞当前线程,提供对该线程的原子操作” 也就是说当一个线程遇到WiteOne的时候,如果在WiteOne...里面没有线程在操作,则此线程进去操作 而里面有线程的时候,所有到此的线程均需要排队等候里面的线程执行完毕~ 而控制这样操作的结束标记就是使用ReleaseMutex 方法!...,此变量就会加锁,而其他线程是无法访问的,只能挂起等候此变量解锁 我感觉实际上使用的也就是Mutex来实现的 好了开始说说具体的实现吧 public class MutexTest { private...//等待获得对a的写的权利 a++ //保护部分 ReleaseMutex......
但是对于run,with,let,also和apply这五个函数他们的用法及其相似,以至于我们无法确定去选择使用哪一个。...with和其它通用标准函数 在这里之所以将with函数单独拿出来进行说明,是因为with得用法和其它通用的标准函数的用法比较独特。在这里我们依然使用run函数来进行对比。...T.let和T.also的返回值使不同的。...对于T.let和T.also都能够进行链式操作,那么我们现在结合一下T.let和T.also的链式调用来看一下在实际场景中的应用。...没有使用到以外,根据上面的用法我们可以总结出来这些标准函数的三大特性。
作为派生的类,它们继承了插入和提取运算符(以及其他成员函数),还有与文件一起使用的成员和构造函数。可将文件 包括进来以使用任何fstream。...对这些类的一个对象所做的第一个操作通常就是将它和一个真正的文件联系起来,也就是说打开一个文件。...被打开的文件在程序中由一个流对象(stream object)来表示 (这些类的一个实例) ,而对这个流对象所做的任何输入输出操作实际就是对该文件所做的操作。...使用函数成员 get、put、read、write等 经常和read配合使用的函数是 gcount(),用来获得实际读取的字节数。...,对没有关闭的文件进行关闭操作。
,diff的功能就是用来比较两个文件的不同,然后记录下来,也就是所谓的diff补丁。...,patch就是利用diff制作的补丁来实现源文件(夹)和目的文件(夹)的转换。...补丁头 补丁头是分别由—/+++开头的两行,用来表示要打补丁的文件。...它通常由一部分不用修改的东西开始和结束。他们只是用来表示要修改的位置。他们通常以@@开始,结束于另一个块的开始或者一个新的补丁头。...块的缩进 块会缩进一列,而这一列是用来表示这一行是要增加还是要删除的。 块的第一列 +号表示这一行是要加上的。 -号表示这一行是要删除的。 没有加号也没有减号表示这里只是引用的而不需要修改。
整理一下chmod用法,给自己看~~~~ 语法 chmod [-cfvR] [--help] [--version] mode file......参数说明: -c : 若该文件权限确实已经更改,才显示其更改动作 -f : 若该文件权限无法被更改也不要显示错误讯息 -v : 显示权限变更的详细资料 -R : 对目前目录下的所有文件与子目录进行相同的权限变更...u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 ‘+’ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。...另外,可用数字代替,语法为: chmod abc file 其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
领取专属 10元无门槛券
手把手带您无忧上云