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
相关推荐
草明2 小时前
macOS 查看当前命令行的ruby的安装目录
开发语言·macos·ruby
元气满满的热码式6 小时前
Rabbitmq后台无法登录问题解决
分布式·rabbitmq·ruby
舰长1151 天前
mq安装新版-3.13.7的安装
开发语言·后端·ruby
獨枭4 天前
配置 macOS 上的 Ruby 开发环境
开发语言·macos·ruby
计算机毕设定制辅导-无忧学长7 天前
从 AMQP 到 RabbitMQ:核心组件设计与工作原理(二)
网络·rabbitmq·ruby
showmethetime8 天前
RabbitMQ实用技巧
分布式·rabbitmq·ruby
ghie90908 天前
SpringCloud-基于SpringAMQP实现消息队列
后端·spring cloud·ruby
bubiyoushang8889 天前
RabbitMQ如何保证消息可靠性
分布式·rabbitmq·ruby
计算机毕设定制辅导-无忧学长10 天前
RabbitMQ 监控与调优实战指南(二)
分布式·rabbitmq·ruby
二楼后座。11 天前
mac安装brew时macos无法信任ruby的解决方法
开发语言·macos·ruby