理解"对变量的无用分配"

时间:2014-07-04 02:42:05

标签: ruby

我有一个Ruby函数,它返回调用者随后使用的单个变量,但是我收到以下警告

  

警告:已分配但未使用的变量

我已经整理了一个人为的例子,它会用" ruby​​ -cw"

def get_sum(num1, num2)
  sum = num1 + num2
end
puts get_sum(1, 1)

如果我用" ruby​​ -cw"检查它?我得到了上述警告。但是我正在使用" sum"变量 - 只是不在该函数的范围内。我该如何避免这种警告? (并且也满足Rubocop。)

2 个答案:

答案 0 :(得分:6)

您没有使用sum变量进行任何操作。以下内容完成相同的事情:

def sum(a, b)
  a + b
end

由于sumget_sum方法的本地方法,因此无法在该上下文之外使用。

答案 1 :(得分:0)

您可以显式返回值以抑制该错误。像这样:

def get_sum(num1, num2)
   sum = num1 + num2
   return sum
end
puts get_sum(1, 1)

你也可以稍微缩短一下:

def get_sum(num1, num2)
   return num1 + num2
end
puts get_sum(1, 1)

正如您似乎发现的那样,您可以省略关键字' return'如果你关心的只是最后一个表达的结果。

请参阅: Howtogeek Ruby Function (method) Syntax