【问题标题】:Returning arrays from methods in Ruby从 Ruby 中的方法返回数组
【发布时间】:2014-10-18 01:50:21
【问题描述】:

如何从 Ruby 方法返回一个数组?

例子:

def array(a,b,c)
  WHAT DO I TYPE NOW TO RETURN ["a","b","c"]
end

P.S:我是新手,所以我提前道歉,我的问题对任何人来说都是愚蠢的。

【问题讨论】:

  • 你真的是想在方法定义之后返回一个数组吗?如果你这样做,那么它是微不足道的。只需在定义后写一个数组。或者,您的意思实际上是要在方法执行时返回一个数组?
  • 方法何时执行
  • @ConstantLearning,对不起,他们对你投了反对票,因为你没有说清楚。这里的家伙有时会很严格。
  • @ConstantLearning,你要更有礼貌,对你收到的所有答案投赞成票,并选择最好的一个来接受。
  • 感谢提示 遗憾的是,投票需要 15 点声望。否则,我会的。

标签: ruby arrays methods


【解决方案1】:

回报有时会变得很重要,你的问题是有道理的。在 Ruby 中,方法返回数量在形式上始终为 1,即只返回 1 个对象。但是我们可以de facto通过返回一个集合类型来实现更高的arity。你可以这样做:

def hello
  [ "hello", "world" ]
end

返回数组也有特殊的语法支持:

def hello2
  return "hello", "world"
end

试试看它是否有效:

hello #=> [ "hello", "world" ]
hello2 #=> [ "hello", "world" ]
a, b = hello
a #=> "hello"
b #=> "world"

【讨论】:

    【解决方案2】:

    返回其他任何东西的方式相同。如果你想要一个返回数字 1 的方法,你会写:

    def one
      1
    end
    

    在这里,您想要返回一个数组,而不是数字 1。但是数组并没有什么特别之处——就像你把数字 1 作为方法中的最后一个表达式一样,你把一个数组放在那里。

    【讨论】:

    • 我在想这样的事情:
    【解决方案3】:

    最后一个表达式的值是ruby中方法的默认返回值。

    我不知道你为什么要返回一个数组,但是你可以这样。

    def test
        ["a", "b", "c"]
    end
    
    2.1.2 :070 > test
    => ["a", "b", "c"]
    
    def test(a, b, c)
        [a, b, c]
    end
    
    2.1.2 :076 > test("a", "b", "c")
     => ["a", "b", "c"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      • 2014-12-14
      • 2013-01-02
      相关资源
      最近更新 更多