断言与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"}) 

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