2014-07-12 19 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