我正在使用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一次?
我希望我的逻辑没有缺陷,但我正在阅读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?标志如何反转?
这是我的代码:
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的新手.我怎样才能让它运转起来?
我想在不使用if else语句的情况下实现三元运算符。需要使用按位运算符而不使用三元运算符和if else语句来实现。
a= true --> res = b
a= false --> res = c
Run Code Online (Sandbox Code Playgroud) public int getCurrentRemainingCr() {
return (currentEarnedCr >= 120)?(REQUIRED_CR - currentEarnedCr):0;
Run Code Online (Sandbox Code Playgroud)
我试图使用三元运算符代替if-else ...基本上我的if-else暗示如果当前信用大于或等于120,那么将cred设置为0.这上面的代码虽然仍然提出junit中的测试方法问题.
该?:(三元)运算符可以用来代替IF-THEN-ELSE语句分配,但也可以以某种方式进行流量控制使用?例如,
flag ? method1 : method2;
Run Code Online (Sandbox Code Playgroud) 我想在此代码中添加文本以编写网站描述.如果标题为空,则会写入默认说明.如果没有写的话$title.
我想先添加文字 $title
<?php echo isset($title) ? _h($title) : config('blog.description') ?>
Run Code Online (Sandbox Code Playgroud)
目前你会得到:
这个故事的标题
我想要
一篇关于:故事标题的文章
我想知道这个代码与三元运算符的外观如何
if (a) {
// pass
} else {
b();
}
Run Code Online (Sandbox Code Playgroud)
当a为真时,我们没有(事物)代码执行,但是如果a为假,则有一些代码b()然后执行.
所以我们写道:
a ? : b();
Run Code Online (Sandbox Code Playgroud)
但是当你让代码为真空或者你必须用某些东西替换它时,我不确定这是否正确.实际上我从不使用三元运算符,但我们被要求这样做.
我有以下功能,如果我的值是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) ternary-operator ×10
java ×3
c ×2
php ×2
c# ×1
eclipse ×1
function ×1
if-statement ×1
int ×1
javascript ×1
math ×1
perl ×1
printf ×1
string ×1