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
相关推荐
一条泥憨鱼1 天前
【RabbitMQ】高级篇
java·分布式·rabbitmq·php·ruby
catino9 天前
RabbitMQ详解
分布式·rabbitmq·ruby
狂奔的sherry15 天前
JRuby 多线程反引号偶发 127:GC 提前释放了 posix_spawn 的 argv
java·linux·ruby·gc·jruby
zhangzeyuaaa22 天前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby
zhangzeyuaaa22 天前
Ruby `require` 完全指南:从 `$LOAD_PATH` 到 `require_relative`
服务器·前端·ruby
zhangzeyuaaa22 天前
深入 Ruby:return 退出规则完全指南
开发语言·ruby
程序猿乐锅23 天前
从0-1一文详解RabbitMQ
java·分布式·后端·中间件·rabbitmq·ruby
zhangzeyuaaa25 天前
深入 Ruby:Block、Proc、Lambda 核心区别与最佳实践
开发语言·前端·ruby
zhangzeyuaaa1 个月前
深入理解 Ruby 运算符:本质、分类、坑点与重载实战
开发语言·前端·ruby
zhangzeyuaaa1 个月前
Ruby 方法参数完全指南:默认值、可变参数与关键字参数
前端·python·ruby