文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
2. 可选择性使用的 return 关键字
在 Groovy 中,方法主体内部的最后一个求值表达式不必非得带上 return
关键字就能返回。所以对于短方法和闭包而言,忽略这个关键字会显得更简洁。
String toString() { return "a server" }
String toString() { "a server" }
但有时在使用变量时,在两行上分别出现了两次这个变量,让人看起来会不很舒服。
def props() {
def m1 = [a: 1, b: 2]
m2 = m1.findAll { k, v -> v % 2 == 0 }
m2.c = 3
m2
}
在这种情况下,在最后的表达式前换行,或者使用 return
,可读性就会大大增强。
就我个人而言,并不一定会一直使用 return
关键字,这往往是凭感觉作出的。但在闭包中,我多数情况下不会使用它。所以如果该关键字是可选择使用的,而如果它给你的感觉是为代码可读性套上了枷锁,那么也你也可以不使用它,但这并非是强制性的。
然而,要提请大家注意的是,在使用 def
关键字(而非某种具体类型)定义的方法时,最后一个表达式有时会被返回。所以建议最好指定某些具体的返回类型,比如 void 或某种其他类型。在上面所展示的例子中,假如我们把 m2 作为最后要返回的语句,那么最后的表达式应该为 m2.c = 3
,即返回 3
,而并非是你所期望的映射。
像 if
/ else
、 try
/ catch
这些语句也能返回值,就好像在这些语句中也存在“最后一个表达式”一样。
def foo(n) {
if(n == 1) {
"Roshan"
} else {
"Dawrani"
}
}
assert foo(1) == "Roshan"
assert foo(2) == "Dawrani"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论