我正在調試一些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