内置函数2总结:

with:

with(str):with和run基本一样,只不过就是使用的时候不同

1.with函数返回类型,是根据匿名函数最后一行的变化而变化

2.with函数的匿名函数里面持有的是this==str本身

also:
str.also
1.also函数返回类型,用于都是str本身
2.also函数的 匿名函数里面呢持有的是it == str本身

takeIf:
name.takeIf
//一般大部分情况下,都是takeIf + 空合并操作符一起使用
//作用:如果结果为true,返回调用者name本身,否则返回null,结合空合并,如果为null,处理?:后的

takeUnless:

takeIf和takeUnless功能是相反的
name.takeIf {true/false}  :true返回name本身,false返回null
name.takeUnless {true/false}:false返回name本身,true返回null

一、Kotlin语言的with函数

fun main() {val str = "nihao"//匿名操作with(with(str) {//this == str 本身length}){println("你的字符串长度为:$this")}//具名操作with(with(str,::getStrLen),::println)  //输出nihao的长度
}fun getStrLen(str: String) = str.length

二、Kotlin语言的also内置函数

fun main() {val str = "ABCDEFG"val r1 : String = str.also {true'C'}val r2 : Int = 123.also {true'C'}str.also {//it == str 本身    println(it)}//真正使用also函数的写法规则如下://str.also特点,also函数始终是返回“str本身”,所以可以链式调用str.also {println("str的原始数据是:$it")}.also {println("str转换大写的效果是:${it.toLowerCase()}")}}

三、Kotlin语言的takeIf内置函数

//一般大部分情况下,都是takeIf + 空合并操作符一起使用
//作用:如果结果为true,返回调用者name本身,否则返回null,结合空合并,如果为null,处理?:后的
fun main() {val result = checkPermissionAction("Derry","123")println(if (result != null) "欢迎${result}" else "没有权限")//println(checkPermissionAction2("Root","1"))
}//前端
public fun checkPermissionAction(name: String,pwd: String) : String? {return name.takeIf { permissionSystem(name,pwd) }//name.takeIf函数,如果函数里是true,则返回name,否则,则返回null
}//takeIf + 空合并操作符
public fun checkPermissionAction2(name: String,pwd: String) : String {return name.takeIf { permissionSystem(name,pwd) } ?: "你的权限不够"//name.takeIf函数,如果函数里是true,则返回name,否则,则返回null
}//权限系统
private fun permissionSystem(username: String,userpwd: String) : Boolean {return if (uername == "root" && userpwd == "123") true else false
}

四、Kotlin语言的takeUnless内置函数

//takeUnless函数,true,返回null,false,返回调用者
class Manager {private var infoValue: String? = nullfun getInfoValue()fun setInfoValue(infoValue: String) {this.infoValue = infoValue}
}fun main() {val manager = Manager()"Derry".takeIf //it == Derry"Derry".takeUnless // it == Derry//验证字符是否有初始化,这里为空则是true,takeUnless为true,则返回null,为null,则之后?:后的//isNullOrBlank()判断是否为空println( manager.getInfoValue().takeUnless { it.isNullOrBlank() } ?: "未经过初始化")
}

Kotlin语言内置函数学习2:with,also,takeIf,takeUnless相关推荐

  1. python e_pythone函数基础(8)内置函数学习

    内置函数学习 # sorted # map # filter # max # sum # round # chr # ord # dir # bool # eval # exec # zip impo ...

  2. python内置函数学习+截取字符串+字符串格式化符号+for循环

    https://www.runoob.com/python/python-built-in-functions.html python 字符串格式化符号:符 号 描述%c 格式化字符及其ASCII码% ...

  3. c语言内置函数大全,C语言——常用内置函数总结

    ctype.h 1.isalpha():测试一个字符是否为字母,是则返回1,否则返回0. 2.isdigit():测试一个字符是否为数字,是则返回1,否则返回0. 3.isupper():测试一个字符 ...

  4. Go语言内置的基础类型

    目录 1. 布尔类型 3. 浮点型 4. 复数类型 字符串遍历 字符类型 Go语言内置的基础类型 1. 布尔类型 关键字bool,可赋值为预定义的true和false,如:var v1 bool 布尔 ...

  5. Kotlin学习笔记(二)——函数操作符内置函数

    小白笔记(持续更新中) 匿名函数 //匿名函数 fun main() {//count()方法 Returns the length of this char sequence.val len=&qu ...

  6. Kotlin基础学习 --- 内置函数apply、let

    apply内置函数 fun main(){val buffer = "i am buffer "//常规方式println("buffer的字符长度是:${buffer. ...

  7. Kotlin学习之----内置函数apply、let、run、with、also的使用

    目录 总结: 一.apply 用法: info.apply{} 二.run用法 : info.run{} 三.let用法:info.let{} 四.with用法 : with(info) 五.also ...

  8. python中的内置函数怎么学_python内部函数学习(九)

    python提供了很多的内置函数,这些内置的函数在某些情况下,可以起到很大的作用,而不需要专门去 写函数实现XX功能,直接使用内置函数就可以实现,下面分别来学习内置函数的使用和案例代码. 1.abs( ...

  9. 面向初学者的 MQL4 语言系列之3——技术指标和内置函数

    简介 这是"面向初学者的 MQL4 语言"系列的第三篇文章.在前两篇文章中, 我们学习了 MQL4 的基础知识,它们是进一步开发的基石.现在我们将学习使用内置 函数和用于技术指标的 ...

  10. python sort函数返回值_lambda函数与箭头函数在集合内置函数应用中的对照学习

    Python语言中有一个定义轻量级规则的lambda函数,其语法格式为: Lambda 参数列表:返回值表达式 简单的例子如:定义func=lambda x,y:x+y,则调用func(10,20)的 ...

最新文章

  1. Cordova error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Deve
  2. vs2008页面布局GridLayout绝对定位的设置
  3. 数据库-优化-索引-索引的优化注意事项
  4. Send data format set as XML
  5. 视频播放问题和提高性能方案
  6. 添加rabbitmq守护进程
  7. SQL:postgresql中拼接字符串
  8. 解决NVIDIA官网打开速度过慢的 CUDA下载界面打开过慢
  9. 使用邻接矩阵实现商品SKU表单联动
  10. 多业务线下的代码版本管理控制与研发流程规范
  11. 【校内模拟】八云蓝(线段树)(大力分类讨论)
  12. pyecharts 大屏可视化学习
  13. Excel批量合并相同表头的表格
  14. HTML期末作业-我的大学生活
  15. 用户未登录跳转至登录页面
  16. Nanopore牛津纳米孔测16S学习笔记
  17. 项目管理笑话集之诸葛亮借东风
  18. 【计算机网络自顶向下方法】往返时间评估(EstimatedRTT和DevRTT)和超时间隔(TimeoutInterval )
  19. linux qt写入excel文件内容,Qt 读取Excel表格数据 生成Excel表格并写入数据
  20. Cesium+kriging.js实现雨量插值

热门文章

  1. 【Unity3D】Unity5打不开VS2017,Unity打开VS2017异常,并且有时候最后打开的是Mono的解决方案
  2. uva10056(概率+等比求和)
  3. .NET选择模板添加书签导出Word文档,Web导出至Excel。WordHelp类和ExcelHelp类
  4. Ubuntu安装有道词典出现缺少依赖关系问题
  5. android wight
  6. 基于UML的公开招聘教师管理系统建模的研究和设计
  7. 循环神经网络的从零开始实现
  8. 珠海分销系统官网开发笔记:wordpress中使用canonical标签修复版
  9. 毕业旅行 | 伦敦5日游行程推荐
  10. 点餐系统的开发,java后台+微信小程序 实现完整的餐厅点餐系统。微信扫码点餐小程序源码讲解