2014-07-12 65 views
2

我正在使用Dart創建一個簡單的表單式web應用程序。飛鏢是否有數字剪輯功能

我輸入在進行驗證它在這種情況下,限制在一定的範圍內, 1-5

所以一旦它被解析我要檢查的範圍。 我目前使用三元運算符。

foo = foo <= 0 ? 1 : foo; 
    foo = foo > 5 ? 5 : foo; 

這個工程,但它並不特別乾淨。

因爲這似乎是許多飛鏢程序中的一個常見任務,所以我認爲它可能具有內置功能。 是否有?

類似numpy's clip(使用與此域完全無關的示例)。

+0

怎麼樣'' –

+0

據我所知,設置這些約束並不會阻止用戶輸入任何數字,比如32,或者確實輸入任何字符串(比如「foo」),它只是通過點擊箭頭來控制可訪問的範圍。因此需要進一步驗證和控制。如果它的確如此工作,那麼它會很棒。 –

+0

你是對的.. –

回答

2

該功能也被稱爲鉗。顯然,功能isn't in the library。鏈接的開放增強請求用於添加min,max和clamp的通用版本,並提及dart:math中的數值存在最小值和最大值。從文檔中可以看出,夾子,夾子或類似物不存在。

如果你經常需要它,你將不得不使用你自己的功能。你的實現是好的,但我會使用現有的最小和最大函數,而不是三元運算符。

編輯:雖然沒有自由函數,但num具有如GameAlchemist鏈接中文檔所示的鉗位方法。

+0

https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart-core.num#id_clamp – GameAlchemist