断言与Kotin中的错误消息

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

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

assert count > 5 : "value too small" 

我试过了

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

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

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

要传递函数参数,请使用lambda语法 。 拉姆达的最后一个参数可能不在括号内:

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

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

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

对不起,打扰你! 我留下了问题,也许其他一些初学者会发现它有用。