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