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
相关推荐
小北方城市网3 小时前
RabbitMQ 生产级实战:可靠性投递、高并发优化与问题排查
开发语言·分布式·python·缓存·性能优化·rabbitmq·ruby
h7ml4 天前
基于 RabbitMQ 构建异步化淘客订单处理流水线:解耦、削峰与失败重试
分布式·rabbitmq·ruby
一点事10 天前
windows:安装rabbitMQ
windows·rabbitmq·ruby
Knight_AL11 天前
RabbitMQ + Flink 为什么必然会重复?以及如何用 seq 做稳定去重
flink·rabbitmq·ruby
alonewolf_9913 天前
RabbitMQ高级功能全面解析:队列选型、死信队列与消息分片实战指南
分布式·消息队列·rabbitmq·ruby
m0_7482523817 天前
Ruby 模块(Module)的基本概念
开发语言·python·ruby
子非衣17 天前
CenOS7安装RabbitMQ(含延迟队列插件)
分布式·rabbitmq·ruby
m0_7482523817 天前
Ruby 数据类型概述
开发语言·mysql·ruby
你好龙卷风!!!20 天前
rabbitMQ入门 (mac)
macos·rabbitmq·ruby
南行*21 天前
MSF安全开发
安全·网络安全·系统安全·ruby