考虑以下示例:
def c = { println it }
c("hello, world!")
此脚本应该无错误地执行。但是,如果c从未被定义(即为空),该怎么办?
def c = null
c("hello, world!")
此脚本会出现运行时错误。在这种情况下是否有安全的导航操作员使用,或者我是否坚持使用if条件?
def c = { println it }
c?.("hello, world!")
当c不为空时,此脚本似乎不起作用。
答案 0 :(得分:5)
您应该可以使用较长的call()
表单,即:
c?.call( 'hello world?' )
答案 1 :(得分:0)
根据您的要求,您可以使用no-op闭包而不是null。
final c = { println it }
c('hello world')
final c = {}
c('hello world')