Groovy 三元条件变量中使用的参考变量?(ex:var?this:null)

Groovy 三元条件变量中使用的参考变量?(ex:var?this:null),groovy,conditional,ternary,Groovy,Conditional,Ternary,有没有办法在groovy中引用?:语句的第一部分 例如,有没有办法缩短 def time = map.get('time') ? map.get('time').get('milliseconds') : null 差不多 def time = map.get('time') ? it.get('milliseconds') : null ,其中“it”引用命令的第一部分?听起来您只是想使用: 如果map.get('time')返回空引用,则整个表达式的结果将为空,并且不会调用get('ms

有没有办法在groovy中引用
?:
语句的第一部分

例如,有没有办法缩短

def time = map.get('time') ? map.get('time').get('milliseconds') : null
差不多

def time = map.get('time') ? it.get('milliseconds') : null

,其中“it”引用命令的第一部分?

听起来您只是想使用:


如果
map.get('time')
返回空引用,则整个表达式的结果将为空,并且不会调用
get('ms')

听起来您只是想使用:


如果
map.get('time')
返回空引用,则整个表达式的结果将为空,并且不会调用
get('ms')

听起来您只是想使用:


如果
map.get('time')
返回空引用,则整个表达式的结果将为空,并且不会调用
get('ms')

听起来您只是想使用:


如果
map.get('time')
返回空引用,则整个表达式的结果将为空,并且不会调用
get('ms')

您可以使用安全导航操作符

所以你可以这样做:

def time = map?.get('time')?.get('milliseconds')

您可以使用“安全导航”操作符

所以你可以这样做:

def time = map?.get('time')?.get('milliseconds')

您可以使用“安全导航”操作符

所以你可以这样做:

def time = map?.get('time')?.get('milliseconds')

您可以使用“安全导航”操作符

所以你可以这样做:

def time = map?.get('time')?.get('milliseconds')
您可以使用:

它确保如果
map.get('time')
的结果为
null
,则不会调用
.get('毫秒')
。在这种情况下,表达式的总体结果也将是
null

您可以使用:

它确保如果
map.get('time')
的结果为
null
,则不会调用
.get('毫秒')
。在这种情况下,表达式的总体结果也将是
null

您可以使用:

它确保如果
map.get('time')
的结果为
null
,则不会调用
.get('毫秒')
。在这种情况下,表达式的总体结果也将是
null

您可以使用:

它确保如果
map.get('time')
的结果为
null
,则不会调用
.get('毫秒')
。在这种情况下,表达式的总体结果也将是
null

这很简单:

map.time?.milliseconds
这很简单:

map.time?.milliseconds
这很简单:

map.time?.milliseconds
这很简单:

map.time?.milliseconds

@serg06,它可以是
map.time?毫秒
@serg06,它可以是
map.time?毫秒
@serg06,它可以是
map.time?毫秒
@serg06,它可以是
map.time?毫秒