当使用ruby定义一系列键时,将所有Key值作为组合字符串获取

Get all the Key values as a combined string when a range of keys are defined using ruby

我有以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class MyClass

  def my_method(first,last)
    #this should take 2 numbers as arguments and should return the keys value(s) as  a combined string
  end
  private
     def lines_of_code
      {
       1 =>"This is first",
       2 =>"This is second",
       3 =>"This is third",
       4 =>"This is fourth",
       5 =>"This is fifth"
      }
     end
m = MyClass.new
m.my_method(2,4) # This is secondThis is thirdThis is fourth"

我应该将一个范围传递给my_method,因为inturn应该返回组合值字符串。
对不起,如果已经发布了。

提前致谢。


这是一个使用Hash#values_at的技巧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class MyClass

  def my_method(first, last)
    lines_of_code.values_at(*first..last)
  end

  private

  def lines_of_code
    {
      1 =>"This is first",
      2 =>"This is second",
      3 =>"This is third",
      4 =>"This is fourth",
      5 =>"This is fifth"
    }
  end
end

m = MyClass.new
p m.my_method(2,4)
# >> ["This is second","This is third","This is fourth"]
# to get a string
p m.my_method(2,4).join("")
# >>"This is second This is third This is fourth"


1
lines_of_code.values_at(*first..last).join