一、takeIf与takeUnless简介
if差不多等价的是takeIf和takeUnless,为什么要使用这两个关键字?
为了简化代码!! 使用if语句实现代码比较繁琐一点,但使用if语句同样可以实现同样的效果。 简化代码如下:
fun CheckMyTakeIf(value :Boolean):Boolean = value
fun main()
{
var lll :String?= name.takeIf{
CheckMyTakeIf(true)
}
print(lll)
}
未简化代码如下:
fun CheckMyTakeIf(value :Boolean):Boolean = value
fun main()
{
var lll :String? = null
if(CheckMyTakeIf(true))
lll = name
else
lll = null
print(lll)
}
二、关键字takeIf
如果是括号{}内最后一行执行返回的是true,则返回的自身it? 如果是括号{}内最后一行执行返回的是false,则返回的自身null
fun CheckMyTakeIf(value :Boolean):Boolean = value
fun main()
{
var name :String? = "你好"
var lll = name.takeIf {
CheckMyTakeIf(true)
CheckMyTakeIf(false)
}
println(lll)
lll = name.takeIf{
CheckMyTakeIf(false)
CheckMyTakeIf(true)
}
println(lll)
}
IntelliJ IDEA 2021.3.2 (Community Edition) 开发软件运行结果:
二、关键字takeUnless
fun CheckMyTakeIf(value :Boolean):Boolean = value
fun main()
{
var name :String? = "你好"
var lll = name.takeUnless {
CheckMyTakeIf(true)
CheckMyTakeIf(false)
}
println(lll)
lll = name.takeUnless{
CheckMyTakeIf(false)
CheckMyTakeIf(true)
}
println(lll)
}
IntelliJ IDEA 2021.3.2 (Community Edition) 开发软件运行结果:
|