三元条件中使用的参考变量? (例如:var?this:null)
reference variable used in ternary conditional? (ex: var?this:null)
有没有办法在 groovy 中引用 ?:
语句的第一部分?
比如有什么办法可以缩短
def time = map.get('time') ? map.get('time').get('milliseconds') : null
类似于
def time = map.get('time') ? it.get('milliseconds') : null
,其中 "it" 引用命令的第一部分?
听起来您只想使用 safe navigation operator:
def time = map.get('time')?.get('milliseconds')
如果map.get('time')
returns 是空引用,整个表达式的结果将为空,get('milliseconds')
不会被调用。
您可以使用安全导航运算符
http://docs.groovy-lang.org/latest/html/documentation/index.html#_safe_navigation_operator
所以你可以这样做:
def time = map?.get('time')?.get('milliseconds')
您可以使用 safe navigation operator:
def time = map.get('time')?.get('milliseconds')
如果map.get('time')
的结果是null
,它确保不会调用.get('milliseconds')
。在这种情况下,表达式的总体结果也将是 null
。
这简直就是:
map.time?.milliseconds
有没有办法在 groovy 中引用 ?:
语句的第一部分?
比如有什么办法可以缩短
def time = map.get('time') ? map.get('time').get('milliseconds') : null
类似于
def time = map.get('time') ? it.get('milliseconds') : null
,其中 "it" 引用命令的第一部分?
听起来您只想使用 safe navigation operator:
def time = map.get('time')?.get('milliseconds')
如果map.get('time')
returns 是空引用,整个表达式的结果将为空,get('milliseconds')
不会被调用。
您可以使用安全导航运算符 http://docs.groovy-lang.org/latest/html/documentation/index.html#_safe_navigation_operator
所以你可以这样做:
def time = map?.get('time')?.get('milliseconds')
您可以使用 safe navigation operator:
def time = map.get('time')?.get('milliseconds')
如果map.get('time')
的结果是null
,它确保不会调用.get('milliseconds')
。在这种情况下,表达式的总体结果也将是 null
。
这简直就是:
map.time?.milliseconds