什么是" s"在这段代码中做什么?

时间:2014-11-10 05:52:30

标签: ruby syntax

以下代码是Caesar cypher的Ruby实现:

def caeser(s,n)s.gsub(/./){|c|(c.ord+n).chr}end

这是作为问题的解决方案:http://www.sitepoint.com/ruby-golf/

&#34>&​​#34;的目的是什么?在caeser(s,n)s的末尾。

没有" s",代码不起作用。

2 个答案:

答案 0 :(得分:3)

我觉得它看起来像这样:

    def caeser(s,n)
     s.gsub(/./){|c|(c.ord+n).chr}
    end

答案 1 :(得分:1)

def caeser(s,n)s.gsub(/./){|c|(c.ord+n).chr}end

在上面的代码中

def caesar(s,n)

是方法声明块

s.gsub(/./){|c|c.ord+n).chr}

这是方法块,其中实际执行了函数的代码

end

此语句终止方法

上面的函数格式不正确,适当的约定就是这个

def caesar(s,n)
  s.gsub(/./){|c|(c.ord+n).chr}
end

最好将声明语句,方法块和结束语句全部放在不同的行上,因为这会减少混淆。