ruby send call 的简单使用

refer: ruby on rails - What does .call do? - Stack Overflow

Ruby使用call 可以调用方法或者proc

复制代码
m = 12.method("+")
# => `method` gets the `+` method defined in the `Fixnum` instance
# m.class 
# => Method

m.call(3)    #=> 15
# `3` is passed inside the `+` method as argument 
m.call(20)   #=> 32

send方法也可以调用方法,在本地写一个测试:

复制代码
def say_hi

  puts "hihi"

end

def say_goodbye

  puts "goodbye"

end

# 使用send方式调用方法

name = "say_hi"

send(name)

m = 12.method("+")

# => `method` gets the `+` method defined in the `Fixnum` instance

# m.class

# => Method

m.call(3)    #=> 15

puts m.call(3)

# `3` is passed inside the `+` method as argument

m.call(20)   #=> 32

puts m.call(20)

运行:ruby hi.rb

得到输出:

复制代码
hihi

15

32
相关推荐
星云API技术支持8 天前
企业微信二次开发:如何建立统一的错误处理、日志与请求追踪机制
javascript·企业微信·ruby
Cry丶9 天前
第四篇:Block、Proc、Lambda 与 `yield`
ruby·lambda·block·yield·闭包·proc
额鹅恶饿呃11 天前
随着CentOS官方停服的时间越来越久,大量仍在使用CentOS7的企业和运维从业者
java·python·算法·c#·ruby
jyOverQ14 天前
RabbitMQ 延迟消息怎么实现?TTL 与死信队列
分布式·后端·rabbitmq·ruby
水无痕simon1 个月前
3 RabbitMQ基础
分布式·rabbitmq·ruby
吴声子夜歌1 个月前
正则指引——Ruby
开发语言·正则表达式·ruby
霸道流氓气质1 个月前
RabbitMQ 延迟队列与死信队列:原理、实现与实战
分布式·rabbitmq·ruby
17715574312 个月前
Mac 上 Ruby、gem、rvm、CocoaPods 四者关系通俗讲清楚
macos·ruby·cocoapods
霸道流氓气质2 个月前
Kiro 中配置 RabbitMQ MCP Server 指南
分布式·rabbitmq·ruby
她说可以呀2 个月前
RabbitMQ Publisher_Confirms(发布确认)
分布式·rabbitmq·ruby