groovy:是否在方法调用上使用括号?

groovy:是否在方法调用上使用括号?,groovy,Groovy,这是一个相当普遍的问题,关于人们是否应该在接受参数的方法调用上使用括号。 i、 e 然后打电话: someFunc "abc" 对 这仅仅是一个一致性问题,还是每个问题都有特定的用例?这主要是一个一致性和可读性问题,但请注意,Groovy不会总是让您忽略括号。首先,在嵌套方法调用中不能省略括号: def foo(n) { n } println foo 1 // won't work 请参阅中标题为“”的部分。没有必须删除它们的特定情况,您可以随时使用它们。把它们排除在外更漂亮。 在某些情况

这是一个相当普遍的问题,关于人们是否应该在接受参数的方法调用上使用括号。 i、 e

然后打电话:

someFunc "abc"


这仅仅是一个一致性问题,还是每个问题都有特定的用例?

这主要是一个一致性和可读性问题,但请注意,Groovy不会总是让您忽略括号。首先,在嵌套方法调用中不能省略括号:

def foo(n) { n }
println foo 1 // won't work

请参阅中标题为“”的部分。

没有必须删除它们的特定情况,您可以随时使用它们。把它们排除在外更漂亮。
在某些情况下,您不能这样做(可能会将列表/映射参数与下标运算符混淆,例如,嵌套调用,或者当语句是赋值时),但一般规则是,如果没有歧义,最外面的调用可以没有括号。
(删除了几行,因为我刚刚收到通知,有一篇文章已经包含了这些信息) Groovy 1.8将允许更多的情况省略括号,您可以在


在我看来,他们鼓励你在使用括号时使用括号,但在它们只是“噪音”时省略它们。

好的,那么这是一个扩展点吗?就像人们在ifs和循环中不使用大括号的老问题一样?i、 e.如果有人以后可能需要添加括号,人们应该始终使用括号…?不确定我是否理解你的意思,如果你的意思是在语句中使用括号是否更好,比如说,
foo('x')
而不是
foo'x'
,因为你可能想稍后编写
println foo('x'))
我要说的是,不要使用它们,只在需要时使用
foo'x'
并添加括号。我喜欢避免混淆。省略括号已经给我们团队中的新开发人员带来了很多困惑。而且,对于何时可以(根据样式指南),似乎只有严格定义的用例。
someFunc("abc")
def foo(n) { n }
println foo 1 // won't work