Groovy中的安全导航操作符对于闭包是什么样的?

dro*_*del 2 groovy

请考虑以下示例:

def c = { println it }
c("hello, world!")
Run Code Online (Sandbox Code Playgroud)

该脚本应该没有错误地执行.但是如果c从未被定义(即null)怎么办?

def c = null
c("hello, world!")
Run Code Online (Sandbox Code Playgroud)

此脚本将出现运行时错误.在这种情况下是否有安全的导航操作员使用,或者我是否坚持使用if条件?

def c = { println it }
c?.("hello, world!")
Run Code Online (Sandbox Code Playgroud)

当c不为null时,此脚本似乎不起作用.

tim*_*tes 5

您应该能够使用更长的call()形式,即:

c?.call( 'hello world?' )
Run Code Online (Sandbox Code Playgroud)