断言与Kotin中的错误消息
从Java切换后,我在Kotlin中感觉很舒服,无法find如何将Kotlin的assert函数与错误消息一起使用。
听起来很简单,我只需要类似于Java的东西
assert count > 5 : "value too small"
我试过了
assert(count > 5, "value too small")
但是,第二个参数需要是() -> Any
。 如何实现?
assert
的消息参数不是一个字符串,而是一个返回一个字符串的函数。 这是因为否则,因为assert
是一个正常的Kotlin函数,所以每次都会计算它的参数,这会导致在字符串是一个复杂expression式的情况下计算消息字符串的不必要的开销(有时会改变语义)。
要传递函数参数,请使用lambda语法 。 拉姆达的最后一个参数可能不在括号内:
assert(count > 5) { "value too small" }
我自己得到了,我需要声明一个没有参数的lambda函数,在Kotlin中看起来像这样:
assert(count > 5, {"value too small"}) assert(count > 5, { -> "value too small"})
对不起,打扰你! 我留下了问题,也许其他一些初学者会发现它有用。