我正在调试一些Ruby代码,并遇到了一些我不熟悉的东西。做什么:[]在传递给.send这个Ruby语句时做什么?
user_array = user_array.send(:[], hash_key)
这条线做什么?我很困惑:[]
作为第一个参数传递给send
。
仅供参考,user_array
是类(Chef::Node
)的一个实例,hash_key
是一个字符串。
我正在调试一些Ruby代码,并遇到了一些我不熟悉的东西。做什么:[]在传递给.send这个Ruby语句时做什么?
user_array = user_array.send(:[], hash_key)
这条线做什么?我很困惑:[]
作为第一个参数传递给send
。
仅供参考,user_array
是类(Chef::Node
)的一个实例,hash_key
是一个字符串。
它只是简单地调用[]
方法。它返回数组/散列的一个元素。这相当于打电话:
user_array[hash_key]
发送呼叫第一个参数与其余的参数。
在这种情况下,它应转化到user_array [HASH_KEY]
也就是说饼干怪兽... – Anthony
你知道什么'发送'吗? –
'send'调用方法。所以在接受的答案中解释,'obj.send(:to_s)'与'obj.to_s'相同。 – tommarshall