2016-05-10 40 views
2

從Java切換後,我在Kotlin中感到舒適,並且無法找到如何將Kotlin的assert函數與錯誤消息一起使用。Kotin中的錯誤消息聲明

聽起來很簡單,我只需要類似於Java的

assert count > 5 : "value too small" 

我試圖

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

然而,第二個參數必須是() -> Any東西。如何實現這一目標?

回答

3

assert的消息參數不是一個字符串,而是一個返回String的函數。這是因爲否則,因爲assert是一個正常的Kotlin函數,所以每次都會計算它的參數,這會導致在字符串是複雜表達式的情況下計算消息字符串時產生不必要的開銷(有時會改變語義)。

要傳遞函數參數,請使用lambda syntax。拉姆達的最後一個參數可能會被排除在圓括號之外:

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

我自己得到了它,我需要聲明沒有參數的lambda函數,它看起來像這樣在科特林:

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

對不起,打擾你!我留下了問題,也許其他一些初學者會發現它很有用。

相關問題