我試圖寫一個簡單的DSL(對Redis的),我想定義[] + =自己有沒有一種方法來重新定義[] = +紅寶石
我
def []=(key,val)
@redis.zadd(@name,val,key)
end
,我想定義
def []+=(key,val)
@redis.zincrby(@name,val,key)
end
但我的理解是,Ruby提供的 「[] + =」 操作符automaticallygiven [] =
有沒有辦法來克服這種行爲 很明顯,我不想這樣做,因爲我不能說,在流水線模式下運行這個
雖然結論是正確的,但此代碼*並不顯示*,這是不可能的。也就是說,*不排除特殊的[] + ='操作符語法或'+ ='的綁定規則。爲了「證明」這一點,我們必須證明在適用的Ruby規範中沒有定義這樣的「特殊」操作符/綁定。 (祝你找到正式的Ruby規範!: - /) – 2012-06-15 22:13:11
@pst:ISO規範在不久前正式獲得批准。 –
@pst,看到Ruby語言將參考實現放棄爲[國際標準](http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579)真是太棒了。我當然想在我的答案中提到它;如此多的C語言問題已經被優雅地回答了。不幸的是,我沒有副本。 :) –