Function 语法浅谈

Funtion  的使用 \textbf{Funtion}\ \text{的使用} Funtion 的使用

关于 function属实是一种有趣的语法。

我们常常会碰到的问题,就是我们在一个函数内部想使用其局部变量来进行一些操作。

我们常用的写法是直接定义一个函数:

auto F = [&, i] () -> void{
  	.....  
};

但是如果说我们需要使用一些递归的调用,auto不能判断出其类型,我们就必须使用 function函数。

换言之 function本质上是一种类型,表示一个递归函数的指针。

function<A(B)> dfs;

其中 A表示返回值的类型,B表示要填的参数。

举一个列子,我们需要遍历以当前节点 x x x 为根的树。

for(int i = 1; i <= n; ++ i) {
	function<void(const int& p,int pre)> dfs;
    dfs = [&] (const int &p,int pre) {
        for(auto v : vc[p]) if(v != pre) dfs(to, p);
    }
}

除此之外其还可以成为很多类型的函数:

struct Node : {
    int operator + (const int &a, const int &b) const {
        return a + b;
    }
}
function<int(int, int)> F = Node;
auto g = [] (int a,int b) { return a - b; }
function<int(int, int)> F = g;

也就是静态,非静态函数, L a m b d a \tt Lambda Lambda 表达式等。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 MATLAB 中,function 语法用于定义函数。函数是一段可重复使用的代码,它接受输入并产生输出。下面是 function 语法的一般形式: ``` function [output1,output2, ..., outputN] = functionName(input1,input2, ..., inputN) % 函数主体 end ``` 其中,`function` 关键字用于声明函数,`functionName` 是函数的名称,`input1`、`input2` 等表示函数的输入参数,`output1`、`output2` 等表示函数的输出参数,`% 函数主体` 是函数的实现代码,`end` 表示函数结束。 在函数主体中,你可以使用 MATLAB 编程语言中的任何语句和函数。函数输入参数和输出参数可以是标量、向量、矩阵或更复杂的数据类型。在函数主体中,你可以使用输入参数进行计算,并将结果存储在输出参数中。 例如,下面是一个简单的 MATLAB 函数,它计算两个数的和并返回结果: ``` function [sum] = add(a, b) % 计算两个数的和 sum = a + b; end ``` 在上面的例子中,`add` 函数有两个输入参数 `a` 和 `b`,一个输出参数 `sum`。函数主体计算 `a` 和 `b` 的和,并将结果存储在 `sum` 中。你可以通过调用 `add` 函数来计算两个数的和: ``` >> x = 3; >> y = 4; >> z = add(x, y) z = 7 ``` 在这个例子中,`x` 和 `y` 是输入参数,`z` 是输出参数。调用 `add` 函数时,输入参数 `x` 和 `y` 的值分别设置为 3 和 4。函数计算它们的和为 7,并将结果存储在输出参数 `z` 中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值