如果表达式成立则执行冒号(:)前半部分,否则执行后半部分
一、简单的三目运算符:
1、5>3 ? true : false
2、'5>3' ? true : false
3、'3>5' ? true : false
4、'' ? true : false
5、' ' ? true : false
6、null ? true : false
7、'null' ? true : false
8、0 ? true : false
9、'0' ? true : false
10、1 ? true : false
答案:
- true, 5>3成立,所以true
- true,这里并不是因为5>3成立才true,而是因为'5>3'这个字符串不为空才true
- true,同上不是因为3<5就是false,而是因为'3>5'不为空才true
- false,因为空字符串
- true,因为空字符也是字符,不是空字符串
- false,null在groovy中转换成布尔型就是false
- true,'null'为非空字符串
- false,0转换成布尔型为false
- true,'0'为非空字符串
- true,非0转化成布尔型为true
二、嵌套三目运算符:从右到左依次执行
'5>3' ? true : (5>3 ? true : false) '5>3' ? true : (5<3 ? true : false) 5>3 ? true : (5>3 ? true : false) 5<3 ? true : (5<3 ? true : false)
答案:
- true,括号中为true,'5>3'为非空字符串
- true,括号中为false,'5<3'为非空字符串
- true,括号中为true,5>3成立
- false,括号中为false,5<3不成立