实际工作场景中经常会有各种语言一起混编的情况,混编的时候经常会大脑短路把各种语法混淆,或者某种语言有一段时间没编写忘了的情况,比如三目运算。为了方便记忆查找,特此记录。
c++ 与 java的语法中,都存在有标准的三目运算符。具体如下
c++代码:
void func() {int a = 3, b = 2;int maxnum = a > b ? a : b;cout<<"maxnum is: "<
java代码:
public void test4() {int a = 3, b = 2;int maxnum = a > b ? a : b;System.out.println("maxnums is: " + maxnum);}
可以看出来,c++跟java里面都有标准的三目操作符? :,直接使用即可。
python语法里面是没有标准三目运算符的,可以使用if else语法来模拟三目运算很方便。
exp1 if contion else exp2
def func():a, b = 3, 2c = a if a > b else bprint(c)
scala中也没有标准三目运算符? :,与python中类似,也可以用if else语句模拟三目运算。
def func() = {val (a, b) = (3, 2)val maxnum = if (a > b) a else bprintln(maxnum)}
注意scala与python中if else表达式的不同在于,本质上是利用了scala中的自动推断语法,scala中任何表达式都是有值的,if else表达式的值是每个分支最后一行代码的结果。
shell中也有类似的三目表达式,shell中也有?:这种语法,看下面的例子。
#!/bin/basha=3
b=2
c=$((a>b?a:b))
echo "c is: "$c
$(( ))表达式,配合?:三目运算符,就可以达到我们想要的效果。