我想在IntelliJ中创建一个自定义检查,以警告在scala中的匿名函数中使用return语句。例如,假设我想在Seq中计算高于3的值的数量(以非常丑陋的方式):
String s = new String(bytes);
此代码错误,此处的错误是val seq = Seq(1,2,3,4,5,6,7)
def foo(s: Seq[Int]): Int = {
s.map(x => {
if (x > 3)
return 1
0
}).count()
}
foo(seq)
语句将导致命名的return
函数返回1,而不是在匿名函数foo
中返回1。
我正在处理的代码由很多文件组成,我已经多次发现了这个错误,但文件太多了,我无法手动检查它们。
我正在使用IntelliJ-idea,我知道可以使用搜索和替换模板选项创建自定义检查规则,但是对于这种复杂的检查,我无法生成模板也不能找到有关如何创建它的任何帮助。
提前感谢任何帮助/提示!