0
什么是发送一个字符串,并发送一个符号动态调用的方法,例如,
foo.public_send(:bar)
VSfoo.public_send('bar')
之间的区别?这些处理方式是否存在具体差异?动态调度在红宝石:字符串VS符号如果符号更好,是否值得做
foo.public_send('bar'.to_sym)
如果由于某种原因需要将您的方法名称构造为字符串?
什么是发送一个字符串,并发送一个符号动态调用的方法,例如,foo.public_send(:bar)
VS foo.public_send('bar')
之间的区别?这些处理方式是否存在具体差异?动态调度在红宝石:字符串VS符号
如果符号更好,是否值得做foo.public_send('bar'.to_sym)
如果由于某种原因需要将您的方法名称构造为字符串?
他们之间没有区别,实际上,传递串当它被转换为一个符号。如果提供串
无需将其转换因为是相同的转换(例如'bar'.to_sym
)将完成。
从docs:
调用由符号标识的方法,传递任何参数 指定。与发送不同,
#public_send
仅调用公共方法。当 该方法由字符串标识时,该字符串将转换为 符号。
很酷,谢谢!猜猜我是盲人,我错过了最后一句话,当我在文档中寻找这个:) – tjukes