c++,java,python,scala,shell三目运算总结

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

$(( ))表达式,配合?:三目运算符,就可以达到我们想要的效果。

猜你喜欢

转载自blog.csdn.net/bitcarmanlee/article/details/129581633