gpt4 book ai didi

syntax - 如何 Groovy-ify 空检查?

转载 作者:行者123 更新时间:2023-12-01 02:02:31 27 4
gpt4 key购买 nike

是否有更“Groovy”的方式来编写这个 Groovy 代码:

def myVar=(System.getProperty("props") == null)?
null : System.getProperty("props")

逻辑是:
  • System.getProperty("props")为 NULL,我想要 props为空;
  • 否则,我要 propsSystem.getProperty("props") 的值
  • 最佳答案

    通常对于空值检查,我会找到 ?: (elvis 运算符,如果左侧为 null 或解析为 false,则返回默认值)或 ?. (安全导航,如果左侧为空,则评估为空)。如果要设置在属性不存在时使用的默认值,可以执行以下操作:

    def myVar = System.properties['props'] ?: 'mydefaultvalue'
    如果在 System.properties 中没有找到键 'props' 的任何内容(或者如果返回的值解析为 false),则将 myVar 设置为 'mydefaultvalue'。但是由于您的情况下的默认值是 null 那么
    def myVar = System.properties['props']
    也可以完成这项工作,因为当没有找到给定键的任何内容时,将返回 null。
    这里的 Groovy 化是:
  • 如果不需要 GroovyString 插值,则更喜欢单引号字符串而不是双引号字符串
  • 对 map 和列表使用带括号索引的语法(而不是“get”或“put”)
  • 使用 shortened property form (没有 get 前缀)如果 getter 没有参数(与 Java 不同,Groovy 实现了 universal access principle); System.getProperty(String)对 Java 程序员来说很方便,但在 Groovy 中不需要
  • 使用 ?: 缩短 default-if-null 情况

  • 这个习惯用法在 Ruby 和 JavaScript 中发现,使用 || :
    def myVar = System.properties['props'] || 'mydefaultvalue'
    在 Groovy 中不起作用。 bool 测试的结果是一个 bool 值,因此 myVar 设置为 true。

    关于syntax - 如何 Groovy-ify 空检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25039270/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com