如果你想知道一个int是否在两个数字之间,为什么不能这样做呢?
if (16.5 < value < 17.5)
而不是它,你必须做
if (value > 16.5 && value < 17.5)
这似乎有点开销。
bis0qfac1#
您可以使自己方法类似于
between(value, 1, 10);
您必须考虑编译器是如何工作的。首先,他们有一种能读取编程语言解析器。如果你写条件“if”,解析器读取“i”和“f”字符。2那么需要“(”符号。
if ( a > b )
检查值、检查符号、再次检查值和检查“)”符号。然后程序知道这是一个条件语句。然后使机器码像01010101(idk.但我们不能读的东西)。在这个公式中。最后比较值 是一个接一个(编译器将以尽可能小的单位工作)。效率在这个阶段是非常重要的。回来你的代码。
这个怎么样?
if (16.5 < value > 17.5)
怎么样?
if (16.5 > value < 17.5)
这是有很多例外情况。但是dart可能会做这个语法。但是他们不会。因为他们也要做逐一比较的工作。因此您可以创建自己方法。
odopli942#
请尝试以下代码:
if (value.clamp(16.6, 17.4) == value) { // Do what you want to do }
我认为.clamp函数是检查一个数字是否小于下限(16.6)或大于上限(17.4)或介于下限和上限之间。如果数字小于下限或大于上限,则显示下限或上限,否则显示数字(我通过在DartPad中测试知道)
.clamp
2条答案
按热度按时间bis0qfac1#
简短回答
您可以使自己方法类似于
长回答
您必须考虑编译器是如何工作的。
首先,他们有一种能读取编程语言解析器。
如果你写条件“if”,解析器读取“i”和“f”字符。2那么需要“(”符号。
检查值、检查符号、再次检查值和检查“)”符号。
然后程序知道这是一个条件语句。然后使机器码像01010101(idk.但我们不能读的东西)。
在这个公式中。最后比较值 是一个接一个(编译器将以尽可能小的单位工作)。
效率在这个阶段是非常重要的。回来你的代码。
这个怎么样?
怎么样?
这是有很多例外情况。但是dart可能会做这个语法。但是他们不会。
因为他们也要做逐一比较的工作。
因此您可以创建自己方法。
odopli942#
请尝试以下代码:
我认为
.clamp
函数是检查一个数字是否小于下限(16.6)或大于上限(17.4)或介于下限和上限之间。如果数字小于下限或大于上限,则显示下限或上限,否则显示数字(我通过在DartPad中测试知道)