我很想知道send和之间的区别public_send.例如:
class Klass
def hello(*args)
"Hello " + args.join(' ')
end
end
k = Klass.new
k.send :hello, "gentle", "readers" #=> "Hello gentle readers"
k.public_send :hello, "gentle", "readers" #=> "Hello gentle readers"
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这个区别吗?
在Rails中,
当我们使用Logger类时,我们总是用块而不是String来定义 -
Rails.logger.error { error.message }
Run Code Online (Sandbox Code Playgroud)
不是以下方式 -
Rails.logger.error "error.message"
Run Code Online (Sandbox Code Playgroud)
它背后的原因是什么?