2012-03-16 121 views
2

我试图制作一个像%w这样的方法(或符号?),但ruby并不满意方法的名称,并且一直给出错误。我试图搜索一下,但没有发现任何令人兴奋的事情。如何在Ruby中创建百分比方法,如%w或%x?

任何想法如何做到这一点?

例如,

def %f(&block) 
    puts "foo" 
end 
+1

你为什么要这样做? – 2012-03-16 12:39:04

+1

为了好玩。 :)扩展语言 – texasbruce 2012-03-16 17:11:55

回答

3

那些不是方法,那些是字面语法。 做的允许创建新文字的语言很少,但Ruby不是其中之一。像大多数语言一样,语法是固定的。

4

你不能做到这一点。这些快捷方式是该语言的一部分。

2

为了做到这一点,您必须编辑Ruby本身,至少对于Ruby 1.9(基于C的Ruby 1.9的实现)YARV Ruby来说。

parse.y famtour幻灯片63到76给出了一个编辑Ruby本身来创建另一个百分比方法的人的例子。对于工作情况不太实际!

+0

谢谢!这非常有用! – texasbruce 2012-03-19 12:37:59