标签: ternary-operator

三元或类似的东西选择功能?

我正在使用Drupal在PHP中进行自动化测试.这是一个有两个我关心的方法的课:pass()fail().每个在结果页面上产生一个单独的行,指示特定操作是通过还是失败,例如

if ( $value == "expected_value" ) {
  $this->pass("Looking for expected value");
} else {
  $this->fail("Looking for expected value");
}
Run Code Online (Sandbox Code Playgroud)

我注意到上面的内容是它有点冗长.我想做三元分配之类的事情,而只是决定调用哪个函数.就像是:

$function = ($value == "expected_value") ? "pass" : "fail" ;
$this->$function("Looking for expected value.");
Run Code Online (Sandbox Code Playgroud)

这是我能说出这种逻辑的最简洁,优雅的方式吗?我试过了

$this->(($value == "expected_value") ? "pass" : "fail")("Looking for expected value.");
Run Code Online (Sandbox Code Playgroud)

但是我得到了一个解析错误.有没有办法将它归结为一行,如三元分配?

编辑我所知道的冗长不是if-else结构,而是我重复两次相同的信息.在我看来应该有一种表达方式,我只声明一次消息.当然我可以将它放在一个变量中,但这会占用额外的空间,我也会将它传递两次.

这是构建我的问题的另一种方式:有没有一种方法可以定义这个逻辑而只表达Looking for expected value一次?

php function ternary-operator

-2
推荐指数
1
解决办法
1028
查看次数

了解JavaScript中的自定义abs函数

我希望我的逻辑没有缺陷,但我正在阅读JavaScript的权威指南,我不明白这个自定义abs函数是如何工作的......

function abs(x) {
  if (x >= 0) {
    return x;
  } else {
    return -x;
  }
}
Run Code Online (Sandbox Code Playgroud)

我使用三元运算符重新起草它以试图理解它...

var res = (x >= 0) ? x : -x;
return res;
Run Code Online (Sandbox Code Playgroud)

......但我仍然不知道它是如何运作的.

假设我使用-10作为x,它如何返回+10?标志如何反转?

javascript math ternary-operator

-2
推荐指数
1
解决办法
178
查看次数

在perl中打印时使用三元运算符

这是我的代码:

for($i=1;$i<=100;$i++){
   if($i%15==0) print "Divisible by 15";
   else if($i%5==0) print "Divisible by 5";
   else print ($i%3==0)? "Divisible by 3":$i;
   print "\n";
} 
Run Code Online (Sandbox Code Playgroud)

它是一个非常简单的代码.我使用Java工作,虽然它在Perl中出错.错误是:

syntax error at line 2, near ") print"
Execution aborted due to compilation errors.
Run Code Online (Sandbox Code Playgroud)

我是Perl的新手.我怎样才能让它运转起来?

string int perl ternary-operator

-2
推荐指数
1
解决办法
1895
查看次数

如何实现三元运算符a?b:c,不使用if else和分支

我想在不使用if else语句的情况下实现三元运算符。需要使用按位运算符而不使用三元运算符和if else语句来实现。

a= true --> res = b
a= false --> res = c
Run Code Online (Sandbox Code Playgroud)

c bit-manipulation ternary-operator

-2
推荐指数
1
解决办法
944
查看次数

三元运算符帮助Java

  public int getCurrentRemainingCr() {
        return (currentEarnedCr >= 120)?(REQUIRED_CR - currentEarnedCr):0;
Run Code Online (Sandbox Code Playgroud)

我试图使用三元运算符代替if-else ...基本上我的if-else暗示如果当前信用大于或等于120,那么将cred设置为0.这上面的代码虽然仍然提出junit中的测试方法问题.

java eclipse ternary-operator

-2
推荐指数
1
解决办法
401
查看次数

这在C#y - = y> 9中意味着什么?9:0;

当我试图理解C#代码块时,我问自己这段代码意味着什么:

y -= y > 9 ? 9:0;
Run Code Online (Sandbox Code Playgroud)

提前致谢

c# ternary-operator

-2
推荐指数
1
解决办法
158
查看次数

在Java中使用三元运算符进行流控制

?:(三元)运算符可以用来代替IF-THEN-ELSE语句分配,但也可以以某种方式进行流量控制使用?例如,

flag ? method1 : method2;
Run Code Online (Sandbox Code Playgroud)

java ternary-operator

-2
推荐指数
1
解决办法
369
查看次数

如何在此PHP函数中添加文本?

我想在此代码中添加文本以编写网站描述.如果标题为空,则会写入默认说明.如果没有写的话$title.

我想先添加文字 $title

<?php echo isset($title) ? _h($title) : config('blog.description') ?>
Run Code Online (Sandbox Code Playgroud)

目前你会得到:

这个故事的标题

我想要

一篇关于:故事标题的文章

php ternary-operator

-2
推荐指数
1
解决办法
77
查看次数

三元运算符.真是空的

我想知道这个代码与三元运算符的外观如何

if (a) {
    // pass
} else {
    b(); 
}
Run Code Online (Sandbox Code Playgroud)

当a为真时,我们没有(事物)代码执行,但是如果a为假,则有一些代码b()然后执行.

所以我们写道:

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

但是当你让代码为真空或者你必须用某些东西替换它时,我不确定这是否正确.实际上我从不使用三元运算符,但我们被要求这样做.

java if-statement ternary-operator

-2
推荐指数
1
解决办法
610
查看次数

如果数字非零则如何打印,否则使用printf打印?

我有以下功能,如果我的值是0,它会给出一些奇怪的输出.有人可以解释一下为什么这表现得很奇怪吗?我的意图是仅在非零值时打印该值,否则应为空白

# include<stdio.h>

int main(int argc, char *argv[]) {
    int i=0;
    printf("Number is %d\n", i ? i : "");
    return 0;
}

-> gcc print.c
print.c: In function 'main':
print.c:5: warning: pointer/integer type mismatch in conditional expression
-> ./a.out
Number is 4195848
Run Code Online (Sandbox Code Playgroud)

我知道我可以像下面这样做,但我想用上面的逻辑做同样的事情

if(i != 0) {
    printf("%d", i);
} else {
    printf("%s", "");

}
Run Code Online (Sandbox Code Playgroud)

c printf ternary-operator conditional-operator

-2
推荐指数
1
解决办法
1349
查看次数