具有不寻常语法的Ruby方法

时间:2016-08-23 07:12:08

标签: ruby

我有一些方法:

def example_method
  I ♥ world!
end

我对这个方法有两个问题:

  1. 由于不存在引号(example_method不是我的方法),这种方法怎么可能不会返回错误。
  2. 我的问题是,如何使此方法返回'I ♥ too!'字符串而不重新定义,重写此方法。
  3. 第2点)是我必须解决的一项练习。

    谢谢!

1 个答案:

答案 0 :(得分:5)

Ruby的语法非常宽容。当使用a b c形式的元素时,它被解释为链式方法调用:a(b(c))

因此,这意味着您需要定义一个方法a,它接受​​一个参数,另一个b接受一个参数,一个方法c返回一些值。< / p>

c部分应为:

def world!
  "too!"
end

然后你可以用另一种方法链接它:

def ♥(x)
  "♥ #{x}"
end

此方法名称似乎不可能,但当前版本的Ruby确实允许方法名称中的unicode字符。

最后一部分是类似的,留给你练习。