首页 > 其他分享 >【Kotlin基础】Kotlin的标准函数

【Kotlin基础】Kotlin的标准函数

时间:2024-02-01 17:03:06浏览次数:29  
标签:函数 also Kotlin 接收者 标准 let apply lambda

所谓标准函数,就是指Standard.kt文件中定义的函数,任何Kotlin代码都可以自由调用所有标准函数,本文主要讨论下几个常用的标准函数:


首先看看直观的对比:


传入this

传入it

return lambda的最后一行

run

let

return this

apply

also


run()

run()函数是具备接收者的隐式调用(apply()),返回的是lambda的最后一行(let())。


let()

let()函数能使某个变量作用于其lambda表达式里,让it关键字能引用它。let与apply比较,let会把接收者传给lambda,而apply什么都不传,匿名函数执行完,apply会返回当前接收者,而let会返回lambda的最后一行。


apply()

apply()函数可看作一个配置函数,你可以传入一个接收者,然后调用一系列函数来配置它以便使用,如果提供lambda给apply函数执行,它会返回配置好的接收者。


also()

also()函数和let函数功能相似,和let一样,also也是把接收者作为值参传给lambda,但有一点不同:also返回接收者对象,而let返回lambda结果。因为这个差异,also尤其适合针对同一原始对象,利用副作用做事,既然also返回的是接收者对象,你就可以基于原始接收者对象执行额外的链式调用。


with()

with()函数是run的变体,功能一样,但是调用with时需要值参作为其第一个参数传入。


takelf()和takeUnless()

takeIf()函数用于判断某个条件是否满足,再决定是否可以赋值变量或执行某项任务。takelf()函数类似于if语句,但它的优势是可以直接在对象实例上调用,避免了临时变量赋值的麻烦。


takeUnless()与takeIf()正好相反


标签:函数,also,Kotlin,接收者,标准,let,apply,lambda
From: https://blog.51cto.com/u_15404648/9534369

相关文章

  • pandas - reset_index() 函数 将Series对象转换为一个新的DataFrame
    #df=pd.read_excel(r"D:\PyCharm\年度数据处理\1月设备离线01.xlsx",sheet_name='Sheet2')#value_counts=df['解除时间'].value_counts().reset_index()#print(value_counts)这段代码的作用是对DataFrame中的"解除时间"列进行值计数,并将结果保存在一个新的DataFrame......
  • Klocwork 2023.4发布:问题匹配算法升级,编码标准全面支持!
    Klocwork2023.4的新增功能Klocwork2023.4改进了问题匹配的算法,为桌面端和CI集成构建之间的结果提供了更大的一致性,以及连续构建之间的问题匹配。Klocwork的最新版本还改进了C/C++语言的分析引擎,减少了误报/漏报,跨过程跟踪数组索引中的值和具有常量表达式的值。此外,还对IDE插......
  • 无涯教程-constructor函数
    构造函数返回对创建原型的字符串函数的引用。constructor-语法string.constructorconstructor-返回值返回创建该对象的函数。varstr=newString("Thisisstring");console.log("str.constructoris:"+str.constructor)运行上面代码输出str.constructoris:fun......
  • 钩子hook,回调函数callback
    摘自和参考如下资料:钩子(回调函数)与PyTorch-知乎(zhihu.com) 把钩子函数传递给触发函数,就可以在触发函数内调用钩子函数了。其实就是把函数指针或者函数名传给另一个函数。只不过一般不单独这么用,配合类一起用可能就稍微麻烦了点。classOneday():def__init__(se......
  • 积性函数与狄利克雷卷积
    积性函数【定义】若对于一个数论函数\(f\),有:对\((a,b)=1\),有\(f(a\timesb)=f(a)\timesf(b)\),称\(f\)是一个积性函数。特别地,若对于任意数\(a,b\),有\(f(a\timesb)=f(a)\timesf(b)\),称\(f\)是一个完全积性函数。积性函数举例:欧拉函数,因数个数,因数和……完......
  • delphi中的Format、FormatDateTime函数详解(转)
    Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用:首先看它的声明:functionFormat(constFormat:string;constArgs:arrayofconst):string;overload;事实上Format方法有两个种形式,另外一种是三个参数的,......
  • [office] 4个超赞的Excel函数技巧,学会了你就更牛逼了!
    分享一波超赞的Excel函数技巧啦,需要的宝宝赶紧拿来!提示:括号中的数据可以根据实际情况而变化1、利用函数批量新建文件夹公式:="MD"&A1首先在A列单元格输入文件夹的名称,并在在B1输入公式:="MD"&A1(注意:MD后面有个空格),然后光标移到B1单元格右下角,当鼠标箭头变成"+"时双击则进行填充,然......
  • 欧拉函数学习笔记
    前言本人能力有限,有错误欢迎指出。定义\(\varphi(n)\)表示的是小于等于\(n\)和\(n\)互质的数的个数。公式设\(n=\prod\limits_{i=1}^{s}p_i^{k_i}\),有\[\begin{aligned}\varphi(n)&=\prod_{i=1}^s\varphi(p_i^{k_i})\\&=\prod_{i=1}^sp_i^{k_i}-p_i^{k_i-1}\\&=\prod......
  • 无涯教程-toExponential()函数
    此方法返回一个以指数表示形式表示数字对象的字符串。toExponential()-语法number.toExponential([fractionDigits])fractionDigits   - 一个整数,指定小数点后的位数。toExponential()-返回值一个字符串,以指数表示形式表示Number对象,其小数点前有一位数字,四舍......
  • 无涯教程-Number.parseFloat()函数
    此方法解析字符串参数,并返回传递的字符串的浮点表示形式。Number.parseFloat()-语法Number.parseFloat(string)string  - 要解析的值Number.parseFloat()-返回值字符串的浮点表示形式。Number.parseFloat()-示例console.log(Number.parseFloat("10"));conso......