S06003

错误代码

S06003

报错信息

Not allowed to define a named function [XXX] within another function. RefId: S06003

错误原因

这个报错与嵌套定义命名函数的错误用法有关。关于命名函数,参考:命名函数

在命名函数定义里,不能再嵌套定义命名函数,否则会报这个错误,比如:

def f1() { 
    def f2() { // 报错 
        return "Hello" 
    } 
    return f2() 
}

解决办法

  1. 把嵌套的命名函数改成匿名函数(推荐使用此方案):

    def f1() {
        f2 = def () { // 定义匿名函数 
            return "Hello" 
        } 
        return f2() 
        }
  2. 把嵌套的函数移到全局作用域下(请谨慎考虑使用此方案):

    def f2() { 
        return "Hello" 
    } 
    
    def f1() {
        return f2() 
    }

关于匿名函数,参考:匿名函数