/
None 是一个特殊值,表示空无或缺失(类似于许多编程语言中的 null)。函数可以返回它,它也可以作为可选参数的占位符。
| 函数 | 说明 | 返回类型 |
|---|---|---|
.none | 创建一个空值。 | none |
.isnone {value} | 检查 value 是否为 none。 | Boolean |
.otherwise {value} {fallback} | 如果 value 不是 none,则返回 value,否则返回 fallback。与函数调用链配合使用效果最佳。 | value 或 fallback 的类型 |
.ifpresent {value} {lambda} | 如果 value 不是 none,则根据 lambda 将其映射为一个新值;如果是 none,则返回 none。与函数调用链配合使用效果最佳。 | lambda 返回的类型,或 none |
.takeif {value} {lambda} | 如果返回布尔值的 lambda 在 value 上被接受,则返回 value,否则返回 none。与函数调用链配合使用效果最佳。 | value 的类型,或 none |
标准库中以 Kotlin 编写的原生函数,通常接受可空参数。当这样的参数被传入 None 时,函数会将其视为 null,这通常意味着该参数被视为缺失。
当你将一个值存储在一个可能为 None 也可能不是的变量中,并且希望不经过检查就将其转发给某个函数时,这一点特别有用。
.function {highlight}
color?:
.container background:{.color}
Value of color: .color
1. .highlight {teal}
2. .highlightValue of color: teal
Value of color: None
Hi! I'm .name::otherwise {unnamed}name 是 John:Hi! I’m Johnnone:Hi! I’m unnamed.num::takeif {x: .x::iseven}::ifpresent {Even}::otherwise {Odd}num 是偶数:Even.x::ifpresent {Yes, .1 is present}::otherwise {Not present}x 是 something:Yes, something is presentnone:Not present此处,lambda 参数是隐式的,并通过位置来访问。