【问题标题】:How to get a method to run on an array如何让方法在数组上运行
【发布时间】:2016-12-20 10:43:43
【问题描述】:

我一直在 codewars 上编写代码 Katas,我想看看是否可以在我的计算机上运行它们。但是,虽然我可以设计各种方法,但我无法使用命令提示符和 Ruby 来运行它们中的任何一个。例如

def sum_array(arr)      
  if arr.kind_of?(Array) and arr.length > 2       
   arr.inject(:+) - arr.min - arr.max  
  else        
   0  
  end  
end 

puts sum_array = [1, 2, 3, 4]

它只给我未修改的数组,而不是返回 5。

让我的方法在数组上工作的正确方法是什么?

【问题讨论】:

  • 最后一行不需要=
  • 确实;您实际上并没有调用方法sum_array,而是将[1, 2, 3, 4] 分配给变量sum_array

标签: arrays ruby methods


【解决方案1】:

= 视为“获取”。

通过编写sum_array = [1, 2, 3, 4],您将[1, 2, 3, 4] 分配给sum_array 而不是调用它,这就是为什么puts 输出1、2、3、4。

要使用[1, 2, 3, 4] 作为参数调用该方法,请执行以下操作:

puts sum_array([1, 2, 3, 4])

puts sum_array [1, 2, 3, 4]

【讨论】:

    猜你喜欢
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 2021-08-12
    • 2016-10-16
    • 2020-09-04
    • 2014-02-08
    • 2018-10-11
    相关资源
    最近更新 更多