我试图写一个简单的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语言问题已经被优雅地回答了。不幸的是,我没有副本。 :) –