Kotin中的错误消息断言

时间:2016-05-10 14:51:09

标签: assert kotlin

在从Java切换后我在Kotlin中感到很舒服,并且无法找到如何将Kotlin的assert函数与错误消息一起使用。

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

assert count > 5 : "value too small"

我试过

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

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

2 个答案:

答案 0 :(得分:6)

<p id = "Citation"> </p> <p id = "author"> </p>的message参数不是String,而是返回String的函数。这是因为否则,因为assert是一个普通的Kotlin函数,所以每次都会对它的参数进行求值,这会导致在字符串是复杂的情况下计算消息字符串的不必要的开销(有时候会改变语义)表达

要传递函数参数,请使用lambda syntax。作为lambda的最后一个参数可能会被排除在括号之外:

assert

答案 1 :(得分:2)

我自己得到它,我需要声明一个没有参数的lambda函数,在Kotlin中看起来像这样:

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

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