11.12.2匿名函数

匿名函数是使用以下语法定义的

@(argument-list) expression

在参数列表中找不到的任何变量都是从封闭作用域继承的。匿名函数可用于从表达式创建简单的未命名函数,也可用于软件包对其他函数的调用,以使其适用于以下函数quad例如,

f = @(x) x.^2;
quad (f, 0, 10)
    ⇒ 333.33

从表达式创建一个简单的未命名函数x.^2并将其传递给quad,

quad (@(x) sin (x), 0, pi)
    ⇒ 2

软件包另一个函数,以及

a = 1;
b = 2;
quad (@(x) betainc (x, a, b), 0, 0.4)
    ⇒ 0.13867

将具有多个参数的函数调整为quad所需的形式。在本例中,ab的值传递给从当前环境中继承的betainc

请注意,出于性能原因,最好使用现有Octave函数的句柄,而不是定义软件包现有函数的匿名函数。sin(x)的集成代码在这里被写成

quad (@sin, 0, pi)

而不使用匿名函数@(x) sin(x).有许多函数具有等价运算符,它们可能是比匿名函数更好的选择。而不是写作

f = @(x, y) x + y

这应该写作

f = @plus

详见运算符重载,用于也具有函数形式的运算符列表。


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号