def track_for stat { symbol: -> { send(stat) }, array: -> { send(stat[0], stat[1]) } }.freeze[stat.class.name.underscore.to_sym].call end
请问这个 freeze 后面方括号 和 call 什么意义呢
方括号用来访问 hash,取得的值是一个 lambda,所以用 call 来调用
蛋疼... 等价于这样写:
def track_for stat send *stat end
#1 楼 @serco freeze 是做什么的?总觉得这么写很奇怪呀
查 git log,给提交者发邮件问他什么这样写。
#2 楼 @luikore 你这么写是返回一个不定参数的动态方法吗?它会自动调用吗