我刚刚尝试编写我的第一个Groovy脚本,并注意到以下方法无法正常工作(至少乍一看)。
boolean isComment(String line)
{
line = line.trim();
return
line.startsWith('//') ||
line.startsWith('/*') ||
line.startsWith('*') ||
line.startsWith('*/');
}
我意识到(由于分号在Groovy中是可选的),方法体实际上是这样的:
对我来说,无法格式化表达式以提高可读性似乎是一个很大的缺点。
表达这种方法的Groovy方法是什么?
答案 0 :(得分:2)
除了实际上没有指明哪些行是注释的逻辑之外,最简单的是:
boolean isComment(String line) {
line = line.trim()
return line.startsWith('//') ||
line.startsWith('/*') ||
line.startsWith('*') ||
line.startsWith('*/')
}
IMO无论如何都很容易理解。
跳过不必要的回报也消除了这个问题:
boolean isComment(String line) {
line = line.trim()
line.startsWith('//') ||
line.startsWith('/*') ||
line.startsWith('*') ||
line.startsWith('*/')
}
另一个选择是将条件包装在parens中:
boolean isComment(String line) {
line = line.trim()
return (
line.startsWith('//') ||
line.startsWith('/*') ||
line.startsWith('*') ||
line.startsWith('*/')
)
}
另一个选择是使用更接近这个的东西:
def boolean isComment(String line) {
line = line.trim()
['//', '/*', '*', '*/'].any {
line.startsWith(it)
}
}
答案 1 :(得分:0)
这个怎么样:
boolean isComment(String line) {
line ==~ /^\s*(\/\/|\/\*|\*).*$/
}