如何 return 来自 Kotlin 断言的错误消息

How to return Error Message from assertion in Kotlin

从 Java 切换到 Kotlin 后,我对 Kotlin 感到很舒服,但无法找到如何结合使用 Kotlin 的 assert 函数和错误消息。

听起来很简单,我只需要类似于Java的东西

assert count > 5 : "value too small"

我试过了

assert(count > 5, "value too small")

但是,第二个参数需要是() -> Any。如何实现?

我自己搞定的,我需要声明一个没有参数的lambda函数,在Kotlin中是这样的:

assert(count > 5, {"value too small"})
assert(count > 5, { -> "value too small"})

抱歉打扰了!我留下这个问题,也许其他初学者会发现它有用。

assert的message参数不是String,而是一个返回String的函数。之所以如此,是因为否则,由于 assert 是一个普通的 Kotlin 函数,它的参数每次都会被计算,这将导致在字符串是复杂的情况下计算消息字符串的不必要的开销(有时会改变语义)表达式。

要传递函数参数,请使用 lambda syntax。最后一个参数是 lambda 可以从括号中省略:

assert(count > 5) { "value too small" }