gpt4 book ai didi

gradle - 为什么 gradle 任务方法名称中的大小写很重要?

转载 作者:行者123 更新时间:2023-12-01 10:35:54 25 4
gpt4 key购买 nike

this question 中,我很困惑,因为我认为我们可以将参数传递给不带括号的方法。实际上,您 可以 将参数作为逗号分隔列表传递给如下方法:

task ListOfStrings(type: ExampleTask) {
//TheList 'one', 'two', 'three' // doesn't work
theList 'one', 'two', 'three'
}
public class ExampleTask extends DefaultTask {
//public void TheList(Object... theStrings) {
// theStrings.each { println it }
//}
public void theList(Object... theStrings) {
theStrings.each { println it }
}
}

上面的代码可以运行 因为方法名称是 camelCase 。当使用 TitleCase 的方法名称(在上面注释掉)时,gradle 会抛出一个错误:
  build file '/tmp/build.gradle': 16: unexpected token: one @ line 16, column 13.
TheList 'one', 'two', 'three'
^

SO ,问题是,“为什么方法名称的大小写很重要?”
总之,是什么导致了这种行为?是公约吗?如果是这样,它在哪里记录?

最佳答案

这只是 Groovy 编译器将任何大写符号视为类引用,而不是方法。这里有一个歧义,您可以通过以下任一方式解决:

  • 使用括号 Foo('one', 'two')

  • 或者
  • 限定方法名称 this.Foo 'one', 'two'

  • 一般来说,约定是类是大写的,而方法不是。因为 Groovy 是一种动态语言,所以编译器在很大程度上依赖于这些约定。

    关于gradle - 为什么 gradle 任务方法名称中的大小写很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35328120/

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