将函数作为参数传递(Javascript/Ruby/Golang)

本文探讨了在Javascript、Ruby和Golang中,如何将函数作为一等公民处理,允许将函数赋值给变量、传递给其他函数及作为返回值。在Javascript中,可以将方法直接传递并作为内部变量使用;Ruby提供了block, proc, lambda和method等可调用对象;而Golang在强类型系统下,需声明形参类型为func。" 114007200,10542485,使用syslog-ng和loganalyzer构建日志监控平台,"['syslog', 'mysql', '日志管理']
摘要由CSDN通过智能技术生成

在Javascript,Ruby和Golang语言中,函数都是一等公民,可以将函数赋值给变量,将函数传递给函数,甚至可以将函数作为返回值返回。
下面我们来看看在这些语言中,函数是如何作为参数被传递的。

##Javascript

function sayHello(name) {
  console.log("Hello, I am " + name);
}

function execute(someFunction, value) {
  someFunction(value);
}
execute(sayHello, "Lisa");

来看上面这段代码,我们将sayHello作为第一个参数传递给了execute。注意不是sayHello的返回值,而是这个方法本身!
因此sayHello成为了execute内部的变量someFunctionexecute可以通过someFunction()来调用sayHello方法。
当然,sayHello需要接收一个参数,execute调用someFunction时也需要传递一个参数。
或者也可以不提前定义sayHello方法,而是直接将方法体作为匿名函数传给execute

function execute(someFunction, value) {
  someFunction(value);
}
execute(function(name) {
  console.log(&#
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值