不知道这是可能的,但我可以调用一个参数之间的空格而不是逗号(不问)的空间的IRB shell的方法吗?比方说,我有一个方法调用红宝石空间方法参数
def start_band(member1, member2, member3, member4)
#do something
end
然后我把它像下面这样:
irb>> start_band "John" "Paul" "George" "Ringo"
编辑:是否可以检测到每一个按键呢?
不知道这是可能的,但我可以调用一个参数之间的空格而不是逗号(不问)的空间的IRB shell的方法吗?比方说,我有一个方法调用红宝石空间方法参数
def start_band(member1, member2, member3, member4)
#do something
end
然后我把它像下面这样:
irb>> start_band "John" "Paul" "George" "Ringo"
编辑:是否可以检测到每一个按键呢?
Durr!我真的以错误的方式接近了这一点。我只需要运行
@members = gets
以允许根据需要输入。尽管如此,感谢您的答复。
不,你不能这样做。无论如何都不带字符串。
您可以使用像treetop写一个非常简单的DSL,或者只是玩猴子解析游戏,但不会解决你的问题相关的编号。
另一个明显的答案是这样的,这也将失败:
irb>> start_band %W(John Paul George Ringo)
创建IRB样CLI并不难,而且可能就足够了,根据您的实际需求是什么。
实际上有一个非常简单的方法来摆脱逗号。你甚至可以摆脱行情的,太:
def start_band(members)
#members is an array
end
start_band %w(John Paul George Ringo)
的限制是你不能使用空格你的字符串里面,你仍然需要启动终止端(虽然可以使用其它字符而不是括号) 。
你可以在字符串中使用空格,你只需要转义它们:'>>%w [foo \ bar]#=> [“foo bar”]'。 – 2011-12-21 15:57:04