标签: conditional-operator

我可以在三元运算符中使用多行吗

我想在三元运算符中使用 if else 语句

     if (open) {
         setOpen(false)
     } else {
         setOpen(true)
         navigator.clipboard.writeText(link)
     }
Run Code Online (Sandbox Code Playgroud)

“if”没有问题,我不知道如何将 else 转换为三元。就像下面的代码一样:

open ? setOpen(false) : setOpen(true) ; navigator.clipboard.writeText(link)
Run Code Online (Sandbox Code Playgroud)

像这样的事情还是有其他方法来完成这项工作?

javascript conditional-operator conditional-statements

4
推荐指数
2
解决办法
1万
查看次数

C# ??结合?:问题

我正在为一个项目构建一个XML Deserializer,我经常遇到这种类型的代码情况:

var myVariable = ParseNDecimal(xml.Element("myElement")) == null ? 
                 0 : ParseNDecimal(xml.Element("myElement")).Value;
Run Code Online (Sandbox Code Playgroud)

有没有更好的方式来写这个陈述?

编辑:也许我应该澄清我的例子,因为我有一个帮助方法来解析字符串为小数.

c# ternary-operator conditional-operator

3
推荐指数
2
解决办法
911
查看次数

奇数Perl条件运算符行为

我在Perl中做了一些工作,我使用条件运算符跑了一个奇怪的结果.

有问题的代码:

($foo eq "blah") ? @x = @somearray : @y = ("another","array");
Run Code Online (Sandbox Code Playgroud)

尝试编译此代码会导致错误" Assignment to both a list and a scalar at XXX line YY, near ');'".在尝试查明错误的来源时,我使用了几种不同的方式在Perl中表示数组,并且它们都返回相同的错误.现在起初我认为这对于赋值语句只是一些愚蠢的明显错误,但为了满足我的好奇心,我用更冗长的方式重写了语句:

if($foo eq "blah") {
    @x = @somearray;
} else {
    @y = ("another","array");
}
Run Code Online (Sandbox Code Playgroud)

该版本的代码编译得非常好.

在条件运算符的工作方式和基本的if-else语句之间是否存在一些很好的区别,我在这里缺少这些语句?我总是将条件运算符理解为第二个语句的简写版本.如果两者之间没有功能差异,为什么Perl会反对第一个语句,而不是第二个语句?

perl if-statement conditional-operator

3
推荐指数
4
解决办法
608
查看次数

在使用或运算符时调用所有3个函数,即使在返回true之后也是如此

我在我的代码中调用三个函数,我想验证我的一些字段.当我尝试使用下面给出的代码时.它只检查第一个值,直到它得到错误的结果.

我想要一些类似的东西,如果fisrt函数返回true,那么它也应该调用next函数,依此类推.可以使用什么代替Or运算符来执行此操作.

    if (IsFieldEmpty(ref txtFactoryName, true, "Required") ||
        IsFieldEmpty(ref txtShortName, true, "Required") ||
        IsFieldEmpty(ref cboGodown, true, "Required"))
    { }
Run Code Online (Sandbox Code Playgroud)

编辑

public bool IsFieldEmpty(ref TextBox txtControl, Boolean SetErrorProvider,string msgToShowOnError)
{
    ErrorProvider EP = new ErrorProvider();
    if (txtControl.Text == string.Empty)
    {
        EP.SetError(txtControl, msgToShowOnError);
        return true;
    }
    else
    {
        EP.Clear();
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

请评论,这个方法是否可以使用ref变量作为参数之一.

我正在检查onSubmit事件的验证winform.

.net c# operators conditional-operator

3
推荐指数
3
解决办法
205
查看次数

是否可以使用条件运算符为可空值赋值?

我知道我可以这样做:

Int32 tempInt;
Int32? exitNum;

if (Int32.TryParse(fields[13], out tempInt))
    exitNum = tempInt;
else
    exitNum = null;
Run Code Online (Sandbox Code Playgroud)

但为什么我不能这样做呢?

Int32 tempInt;
Int32? exitNum = Int32.TryParse(fields[13], out tempInt) ? tempInt : null;
Run Code Online (Sandbox Code Playgroud)

有没有办法使用条件运算符为可空值赋值?

c# nullable conditional-operator

3
推荐指数
2
解决办法
222
查看次数

如何在JSF组件属性中使用EL条件运算符?

我需要<p:panelGrid>根据支持bean属性动态选择a的宽度.但它对我不起作用.我觉得我的代码中有一些语法错误.

<p:panelGrid style="width:#{myBean.fromCCRM} ?70%:90%">
    ...
</p:panelGrid>
Run Code Online (Sandbox Code Playgroud)

jsf el conditional-operator

3
推荐指数
1
解决办法
8614
查看次数

常量表达式中的条件运算符

我尝试使用MSVC 10的以下代码片段,它可以正常工作.

enum
{
  FOO = (sizeof(void*) == 8 ? 10 : 20)
};

int main()
{
  return FOO;
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是:当所有操作数都是常量表达式时,C++标准(最好是C++ 98)是否允许我在常量表达式中使用条件运算符,或者这是Microsoft的怪癖/扩展?

c c++ conditional-operator constant-expression

3
推荐指数
1
解决办法
488
查看次数

为什么条件运算符作为参数传入时会被视为bool?

我有两个重载功能

void foo(std::string value);
void foo(bool value);
Run Code Online (Sandbox Code Playgroud)

我打电话的时候

foo(true ? "a" : "b");
Run Code Online (Sandbox Code Playgroud)

为什么函数需要一个布尔值而不是字符串?

c++ overloading conditional-operator function-parameter

3
推荐指数
1
解决办法
116
查看次数

测试两个变量是否同时为空

我想在相同的if条件下测试这两个变量.

目前我使用[[$ var]]来测试一个,但两个变量的相同功能不起作用.

为了做到这一点,我试过:

if [[ &var1 && &var2 ]]; then
or 
if [[ &ipAddress ]] && [[ &bcastAddress ]]; then
Run Code Online (Sandbox Code Playgroud)

有限制吗?

variables bash conditional-operator

3
推荐指数
1
解决办法
1736
查看次数

将变量中的值设置为NA,以另一个变量为条件

如果满足另一个变量的条件,我想删除变量中的值.例如:

df$var1[df$condvar == 0] <- NA
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,但我需要重复这个几十更多的变数,所以var1上面会改变var2,var3等等.这始终是基于相同的condvar,虽然对于这些变量的一半条件df$condvar == 1.一遍又一遍地重复这一行是很麻烦的,我想知道是否有更简洁的方法来编写代码.其中一个apply功能会帮助,还是需要创建自定义功能?

作为一个可重复的例子,我希望避免下面代码的重复性:

ex <- mtcars
ex$mpg[ex$vs == 0] <- NA
ex$disp[ex$vs == 0] <- NA
ex$drat[ex$vs == 0] <- NA
ex$cyl[ex$vs == 1] <- NA
ex$hp[ex$vs == 1] <- NA
ex$wt[ex$vs == 1] <- NA
ex


                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Mazda RX4             NA   6    NA 110   NA 2.620 16.46  0  1    4    4 …
Run Code Online (Sandbox Code Playgroud)

r conditional-operator dataframe na

3
推荐指数
1
解决办法
1597
查看次数