在从Java切换后我在Kotlin中感到很舒服,并且无法找到如何将Kotlin的assert函数与错误消息一起使用。
听起来很简单,我只需要类似于Java的
assert count > 5 : "value too small"
我试过
assert(count > 5, "value too small")
但是,第二个参数必须是() -> Any
。如何实现?
答案 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"})
很抱歉打扰你!我留下这个问题,也许其他一些初学者会发现它很有用。