Kotlin语言内置函数学习2:with,also,takeIf,takeUnless
内置函数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相关推荐
- python e_pythone函数基础(8)内置函数学习
内置函数学习 # sorted # map # filter # max # sum # round # chr # ord # dir # bool # eval # exec # zip impo ...
- python内置函数学习+截取字符串+字符串格式化符号+for循环
https://www.runoob.com/python/python-built-in-functions.html python 字符串格式化符号:符 号 描述%c 格式化字符及其ASCII码% ...
- c语言内置函数大全,C语言——常用内置函数总结
ctype.h 1.isalpha():测试一个字符是否为字母,是则返回1,否则返回0. 2.isdigit():测试一个字符是否为数字,是则返回1,否则返回0. 3.isupper():测试一个字符 ...
- Go语言内置的基础类型
目录 1. 布尔类型 3. 浮点型 4. 复数类型 字符串遍历 字符类型 Go语言内置的基础类型 1. 布尔类型 关键字bool,可赋值为预定义的true和false,如:var v1 bool 布尔 ...
- Kotlin学习笔记(二)——函数操作符内置函数
小白笔记(持续更新中) 匿名函数 //匿名函数 fun main() {//count()方法 Returns the length of this char sequence.val len=&qu ...
- Kotlin基础学习 --- 内置函数apply、let
apply内置函数 fun main(){val buffer = "i am buffer "//常规方式println("buffer的字符长度是:${buffer. ...
- Kotlin学习之----内置函数apply、let、run、with、also的使用
目录 总结: 一.apply 用法: info.apply{} 二.run用法 : info.run{} 三.let用法:info.let{} 四.with用法 : with(info) 五.also ...
- python中的内置函数怎么学_python内部函数学习(九)
python提供了很多的内置函数,这些内置的函数在某些情况下,可以起到很大的作用,而不需要专门去 写函数实现XX功能,直接使用内置函数就可以实现,下面分别来学习内置函数的使用和案例代码. 1.abs( ...
- 面向初学者的 MQL4 语言系列之3——技术指标和内置函数
简介 这是"面向初学者的 MQL4 语言"系列的第三篇文章.在前两篇文章中, 我们学习了 MQL4 的基础知识,它们是进一步开发的基石.现在我们将学习使用内置 函数和用于技术指标的 ...
- python sort函数返回值_lambda函数与箭头函数在集合内置函数应用中的对照学习
Python语言中有一个定义轻量级规则的lambda函数,其语法格式为: Lambda 参数列表:返回值表达式 简单的例子如:定义func=lambda x,y:x+y,则调用func(10,20)的 ...
最新文章
- Cordova error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Deve
- vs2008页面布局GridLayout绝对定位的设置
- 数据库-优化-索引-索引的优化注意事项
- Send data format set as XML
- 视频播放问题和提高性能方案
- 添加rabbitmq守护进程
- SQL:postgresql中拼接字符串
- 解决NVIDIA官网打开速度过慢的 CUDA下载界面打开过慢
- 使用邻接矩阵实现商品SKU表单联动
- 多业务线下的代码版本管理控制与研发流程规范
- 【校内模拟】八云蓝(线段树)(大力分类讨论)
- pyecharts 大屏可视化学习
- Excel批量合并相同表头的表格
- HTML期末作业-我的大学生活
- 用户未登录跳转至登录页面
- Nanopore牛津纳米孔测16S学习笔记
- 项目管理笑话集之诸葛亮借东风
- 【计算机网络自顶向下方法】往返时间评估(EstimatedRTT和DevRTT)和超时间隔(TimeoutInterval )
- linux qt写入excel文件内容,Qt 读取Excel表格数据 生成Excel表格并写入数据
- Cesium+kriging.js实现雨量插值
热门文章
- 【Unity3D】Unity5打不开VS2017,Unity打开VS2017异常,并且有时候最后打开的是Mono的解决方案
- uva10056(概率+等比求和)
- .NET选择模板添加书签导出Word文档,Web导出至Excel。WordHelp类和ExcelHelp类
- Ubuntu安装有道词典出现缺少依赖关系问题
- android wight
- 基于UML的公开招聘教师管理系统建模的研究和设计
- 循环神经网络的从零开始实现
- 珠海分销系统官网开发笔记:wordpress中使用canonical标签修复版
- 毕业旅行 | 伦敦5日游行程推荐
- 点餐系统的开发,java后台+微信小程序 实现完整的餐厅点餐系统。微信扫码点餐小程序源码讲解