与标准的if-else语句相比,?:运算符有什么好处和缺点.显而易见的是:
有条件的?:运营商
标准If/Else
根据声明,可读性似乎各不相同.在第一次接触到?:运算符后的一段时间内,我花了一些时间来精确地消化它是如何工作的.您是否会建议尽可能使用它,或者坚持if/else,因为我与许多非程序员一起工作?
我是C#新手,我遇到了一个问题.处理三元运算符(? :)时,C#和Java之间存在差异.
在以下代码段中,为什么第4行不起作用?编译器显示错误消息there is no implicit conversion between 'int' and 'string'.第5行不起作用.两者List都是对象,不是吗?
int two = 2;
double six = 6.0;
Write(two > six ? two : six); //param: double
Write(two > six ? two : "6"); //param: not object
Write(two > six ? new List<int>() : new List<string>()); //param: not object
Run Code Online (Sandbox Code Playgroud)
但是,相同的代码适用于Java:
int two = 2;
double six = 6.0;
System.out.println(two > six ? two : six); //param: double
System.out.println(two > six ? two : …Run Code Online (Sandbox Code Playgroud) 我遇到了很大的麻烦,因为我需要通过设计一些输入类型来解决问题.我有类似的东西:
.registration_form_right input:not([type="radio")
{
//Nah.
}
Run Code Online (Sandbox Code Playgroud)
但我也不想设置复选框样式.
我试过了:
.registration_form_right input:not([type="radio" && type="checkbox"])
.registration_form_right input:not([type="radio" && "checkbox"])
.registration_form_right input:not([type="radio") && .registration_form_right input:not(type="checkbox"])
Run Code Online (Sandbox Code Playgroud)
怎么用&&?我需要尽快使用||,我认为使用方法是一样的.
更新:
我仍然不知道如何使用||和&&正确.我在W3文档中找不到任何内容.
<?PHP
require __DIR__.'/c.php';
if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
throw new Exception('Error');
$c();
?>
Run Code Online (Sandbox Code Playgroud)
Twitto使用从PHP 5.3开始提供的几个新功能:
在PHP 5.3 中,数字2对?:做什么?
另外,匿名函数是什么意思?那不是已经存在了一段时间的东西吗?
php ternary-operator language-construct conditional-operator php-5.3
我可以在go(golang)中编写一个带有变量赋值的简单if-else语句,就像在php中一样(例如):
$var = ( $a > $b )? $a: $b;
Run Code Online (Sandbox Code Playgroud)
目前我必须使用以下内容:
var c int
if a > b {
c = a
} else {
c = b
}
Run Code Online (Sandbox Code Playgroud)
对不起,如果这个控制声明和我无法通过现场和谷歌搜索找到信息,我记不起名字了.:/
因此,对于在布尔二元运算符,Java有&,|,^,&&和||.
让我们简要总结一下他们在这里简要介绍的内容:
对于
&,结果值是true两个操作数值是否为true; 否则,结果是false.对于
|,结果值是false两个操作数值是否为false; 否则,结果是true.对于
^,结果值是true操作数值是否不同; 否则,结果是false.该
&&操作是一样&,但是评估其右边的操作数只有在其左侧操作数的值true.该
||操作是一样|的,但评估其右边的操作数只有在其左侧操作数的值false.
现在,所有5间,那些3有复合赋值版本,分别为|=,&=和^=.所以我的问题是显而易见的:为什么不是Java提供&&=和||=呢?我发现我需要那些比我更需要更多的&=和|=.
而且我不认为"因为它太长"是一个很好的答案,因为Java有>>>=.这个遗漏必须有更好的理由.
java conditional-operator short-circuiting assignment-operator compound-assignment
我想在MySQL中实现三元条件运算符.我有一个表,其中存在一个字段ID.其值可能为null.我想以id三元条件格式显示如下:
select id = id == null ? 0 : id;
Run Code Online (Sandbox Code Playgroud)
在MySQL中有可能吗?
是否有一个红宝石成语"If do-this"和"do-this"就像一个简单的命令一样?
例如,我现在正在做
object.method ? a.action : nil
Run Code Online (Sandbox Code Playgroud)
将else子句留空,但我觉得这可能是一种更惯用的方法,不需要在最后指定一个nil.(另外,在这种情况下,我觉得占用多行代码会很浪费.
我真的很喜欢这个:
var value = maxValue > minValue ? minValue : maxValue;
Run Code Online (Sandbox Code Playgroud)
在Coffescript中有同样简洁的东西吗?
c# ×2
java ×2
coffeescript ×1
conditional ×1
css ×1
go ×1
if-statement ×1
mysql ×1
operators ×1
php ×1
php-5.3 ×1
ruby ×1
ternary ×1
vb.net ×1