Dart 匿名函数2025年3月17日 | 阅读 3 分钟 我们已经学习了 Dart 函数,它通过使用用户定义的名称来定义。 Dart 还提供了指定无名函数或没有名称的函数的功能。 这种类型的函数被称为匿名函数、lambda 或闭包。 匿名函数的行为与常规函数相同,但它没有名称。 它可以有零个或任意数量的参数,并带有可选的类型注释。 我们可以将匿名函数分配给一个变量,然后我们可以根据我们的要求检索或访问闭包的值。 匿名函数包含一个独立的代码块,可以在我们的代码中作为函数参数传递。 语法如下。 语法让我们看以下示例。 示例 -输出 Example of anonymous function 0: James 1: Patrick 2: Mathew 3: Tom 说明在上面的例子中,我们定义了一个带有未类型化参数 item 的匿名函数。 该函数为列表中的每个项目调用,并使用其指定的索引值打印字符串。 如果函数由一条语句组成,那么我们也可以用以下方式编写上面的代码。 它等同于之前的代码。 您可以在您的 dart pad 中粘贴并运行它来验证它。 词法作用域正如我们在Dart简介中讨论的那样,它是一种词法作用域语言,这意味着变量的作用域是在编译时决定的。 变量的作用域是在编译代码时确定的。 如果变量定义在不同的花括号中,它们的行为会有所不同。 让我们理解以下示例。 示例 -观察上面的代码,nestedFunction() 使用了上一个函数的变量。 词法闭包词法闭包,也称为闭包,是一个函数对象,即使在使用该函数时,也可以访问其词法作用域中的变量。 换句话说,它提供了从内部函数访问外部函数的作用域。 让我们理解以下示例。 示例 -输出 Will Smith 说明在上面的代码中,initial() 函数创建了一个名为 name 的局部变量和函数 disp_Name()。 disp_Name() 函数在 initial() 函数中定义,因此 disp_Name() 函数没有自己的局部变量。 内部函数可以访问外部函数的变量。 函数 disp_Name() 可以访问在外部函数 initial() 中声明的 name 变量。 下一主题main() 函数 |
我们请求您订阅我们的新闻通讯以获取最新更新。