IAm*_*aja 2 syntax groovy null-check
是否有更"Groovy"的方式来编写这个Groovy代码:
def myVar=(System.getProperty("props") == null)?
null : System.getProperty("props")
Run Code Online (Sandbox Code Playgroud)
逻辑是:
System.getProperty("props")为NULL,我想props成为NULL;props成为的价值System.getProperty("props")Nat*_*hes 13
通常用于空值检查我到达?:(elvis运算符,如果左侧为null或解析为false,则返回默认值)或?.(安全导航,如果左侧为null,则计算为null).如果要设置在属性不存在时使用的默认值,可以执行以下操作:
def myVar = System.properties['props'] ?: 'mydefaultvalue'
Run Code Online (Sandbox Code Playgroud)
如果在System.properties中找不到键'props'(或者返回的值解析为false),则将myVar设置为'mydefaultvalue'.但是,因为您的情况下的默认值为null
def myVar = System.properties['props']
Run Code Online (Sandbox Code Playgroud)
也会做这项工作,因为当找不到给定键的任何内容时,则返回null.
这里的Groovy -ifications是:
如果您不需要GroovyString插值,则首选单引号字符串为双引号字符串
对地图和列表使用索引括号语法(而不是'get'或'put')
如果getter没有参数,则使用缩短的属性形式(不带get前缀)(与Java不同,Groovy实现了通用访问原则); System.getProperty(String)对Java程序员来说是一种便利,但在Groovy中它是不需要的
缩短default-if-null案例 ?:
这个成语在Ruby和JavaScript中使用||:
def myVar = System.properties['props'] || 'mydefaultvalue'
Run Code Online (Sandbox Code Playgroud)
不起作用.布尔测试的结果是布尔值,因此myVar设置为true.