Grails三目运算符

如果表达式成立则执行冒号(:)前半部分,否则执行后半部分

一、简单的三目运算符:

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

 答案:

  1. true, 5>3成立,所以true
  2. true,这里并不是因为5>3成立才true,而是因为'5>3'这个字符串不为空才true
  3. true,同上不是因为3<5就是false,而是因为'3>5'不为空才true
  4. false,因为空字符串
  5. true,因为空字符也是字符,不是空字符串
  6. false,null在groovy中转换成布尔型就是false
  7. true,'null'为非空字符串
  8. false,0转换成布尔型为false
  9. true,'0'为非空字符串
  10. 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)

 答案:

  1. true,括号中为true,'5>3'为非空字符串
  2. true,括号中为false,'5<3'为非空字符串
  3. true,括号中为true,5>3成立
  4. false,括号中为false,5<3不成立

你可能感兴趣的:(groovy,三目运算,嵌套三目运算)