引言
你还在被一堆if else恶心吗?
你还在写亿行的代码吗?
为什么不试试三元运算符?
介绍
三元运算符是软件编程中的一个固定格式,语法是“条件表达式?表达式1:表达式2”。使用这个算法可以使调用数据时逐级筛选。
——百度百科
由此可以看出,三元运算符应用到两个符号:? :
(我也不知道这句话有啥用)
其主要由以下部分组成
//样例:取x y 最大值
int a = x>y ? x : y
以此类推,你是不是准备放弃那些预存的函数了呢?
// 在使用sort排倒序时定义的顺序函数
bool tmp(int x, int y)
{
if (x > y)
return 1;
return 0;
}
int main()
{
sort(array, array + num, tmp);
return 0;
}
就可以将上述内容转变为
bool tmp(int x, int y)
{
return x > y ? x : y;
}
同时,当你需要做一些取值判断的时候
// Old
if (__amd64__ == 1)
return "AMD64";
else
return "Other";
// New
return __amd64__ == 1 ? "AMD64" : "Other";
如此可以大量减少if else语句的应用
warning 注意
在C++语言中,三元运算符与if else被编译成汇编语言后是相同的,它只能帮助你缩减代码大小,无法以此进行底层优化
Python 的不同
在Python中使用三元运算符需按以下格式
# 表达式1 if 条件表达式 else 表达式2
c = a if a>b else b