Rubyのsend()とは
オブジェクトのメソッドを呼び出すメソッド
呼び出しはハッシュ、文字列どちらでも呼び出せる
メソッドを動的に呼び出す場合に便利
基本
メソッド呼び出しの比較
code: (rb)
class User
def name
"taro"
end
end
user = User.new
# 通常の呼び出し
puts user.name # => taro
# sendで呼び出し
puts user.send(:name) # => taro
puts user.send("name") # => taro
動的にメソッドを呼び出す
複数あるメソッドを動的に呼び出す
code: (rb)
class User
def name
"taro"
end
def age
20
end
end
user = User.new
# 通常の呼び出し
# 動的な呼び出し
attributes.each do |attr|
value = user.send(attr)
end
# => name: taro
# => age: 20