根据布尔值插入参数
是否可以根据布尔值在函数中插入参数?
例如,我有这段代码:
Math.min(boolA ? doubleValueA, boolB ? doubleValueB);
提前致谢!
Is it possible to insert a parameter in a function depending on a boolean value?
For example, I have this piece of code:
Math.min(boolA ? doubleValueA, boolB ? doubleValueB);
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果
boolA
或boolB
为 false,请使用默认值(例如 Double.MAX_VALUE):编辑
如果您有所需的变量列表要找到最小值,但前提是设置了相应的布尔变量,请将列表加载到数组中并找到最小值:
编辑 2
这通常也可以应用于其他函数。有选择地将参数添加到数组中,然后将该数组传递给函数。如果您可以控制函数定义,则可以使用 变量参数 使其更简单。
Use a default value (such as Double.MAX_VALUE) if
boolA
orboolB
is false:Edit
If you have a list of variables that you want to find the minimum, but only if the corresponding boolean variable is set, load the list into an array and find the minimum:
Edit 2
This can also be applied in general to other functions. Selectively add your parameters to an array, and pass the array to the function. If you have control over the function definition, you can use variable arguments to make it simpler.
java没有类似的运算符
,但支持 三元运算符
这意味着如果
boolA
为 true,则使用doubleValueA
,否则使用defaultValue
。否则,如果
boolA
为 false(除了特殊处理并在这种情况下使用null
,但 Java 没有),那么完全没有意义,您应该更改为
java does not have operator like
but supports ternary operator
it means that if
boolA
is true, then usedoubleValueA
otherwise usedefaultValue
. Otherwisewould be pointless if
boolA
is false (except for special processing and going withnull
in this case, but Java does not)altogether, you should change to
如果您使用三元运算符,则需要一个假条件。假设您想确保如果 boolA 为 false,则 doubleValueB 将为 min,而如果 boolB 为 false,则 doubleValueA 将为 min。您可以将另一个条件设置为最大整数,然后就会出现这种情况。
当然,如果 boolA 和 boolB 都为 false,那么您的值将是最大整数值。如果这种情况发生,那么您将需要额外的代码来处理它。
请注意 数学。 min(int, int) 不接受可变参数。如果您想按照 的描述使用可变长度参数列表在这里你需要你自己的带有可变参数的 min 函数。
If you are using the ternary operator, you need a false condition. Say you want to make sure that if boolA is false then doubleValueB will be min while if boolB is false doubleValueA will be min. You could make the other condition be the max integer and then this will be the case.
Of course if both boolA and boolB are false then your value will be the max integer value. If that can ever happen, then you'll need additional code to handle it.
Note that Math.min(int, int) does not take varargs. If you want to use a variable-length argument list as described here you'll need your own min function with varargs.