我想不出使用 Kotlin 内置加号、减号、时间等函数会返回与仅使用相应运算符(+、-、*)不同的结果的情况。您为什么要在 Kotlin 代码中使用这些函数?
以防万一您不知道,这些是运算符重载。命名函数是定义运算符功能的方式。
有使用命名版本的情况。函数调用不注意运算符优先级,如果将它们链接起来,则按顺序计算。
val x = 1
val y = 2
val z = 3
println(x + y * z) // equivalent to 1 + (2 * 3) -> 7
println(x.plus(y).times(z)) // equivalent to (1 + 2) * 3 -> 9
Run Code Online (Sandbox Code Playgroud)
如果您有很多嵌套的括号,这可能比使用运算符更清楚,这取决于您正在执行的数学类型的上下文。
result = ((x - 7) * y - z) * 10
// vs
result = x.minus(7).times(y).minus(z).times(10)
Run Code Online (Sandbox Code Playgroud)
它并不真正适用于像这样的基本代数,但您可能拥有带有运算符重载的类,其中的逻辑可以更容易地通过顺序方法进行推理。
通过显式声明函数名称,您可以对可为空的数字执行安全调用,而这是无法使用运算符完成的。
例如:
fun doubleOrZero(num: Int?) : Int {
return num?.times(2) ?: 0
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |