gpt4 book ai didi

grails - 带和不带 def 关键字的方法参数

转载 作者:行者123 更新时间:2023-12-02 14:22:17 25 4
gpt4 key购买 nike

假设我们有以下方法:

def myMethodWithParameters(param1, def param2, Object param3) {
...
}

使用 def 关键字和使用 Object 作为参数的类型有什么区别?

使用 def 关键字和不使用任何类型/关键字作为参数有什么区别?

到目前为止我所知道的并没有完全回答这个问题:
  • def关键字用于允许动态类型。
    所以你甚至可以把 Object[]在里面。
  • def关键字可用于使变量仅在当前范围内可用,而不是全局
  • 最佳答案

    快速link to the docs这很好地解释了这一点:

    When defining a method with untyped parameters, you can use def but it’s not needed, so we tend to omit them. So instead of:

    void doSomething(def param1, def param2) { }

    Prefer:

    void doSomething(param1, param2) { }

    But as we mention in the last section of the document, it’s usually better to type your method parameters, so as to help with documenting your code, and also help IDEs for code-completion, or for leveraging the static type checking or static compilation capabilities of Groovy.



    我对 Groovy 遵循的一般规则是:

    如果您知道您期望或返回的类型,则将该类型放入定义中。如果您只接受 String ,将类型添加到参数中(与返回值相同)。这对于构成“公共(public)”API 一部分的方法(即:如果其他类或人将要使用该方法)来说是双重的。

    如果它只是内部的,或者接受一系列值类型,则不要输入参数,让 Groovy 对其进行排序......

    关于grails - 带和不带 def 关键字的方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48683616/

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