在最后一个方法语句上分配变量

时间:2013-12-18 04:26:51

标签: ruby methods return-value assign

假设您有一个方法可以在最后为方法调用分配变量:

def this_method(x)
   x = x + 5
   x = some_method_like_multiply_by_two(x)
end

和没有变量赋值的类似方法:

def this_method(x)
   x = x + 5
   some_method_like_multiply_by_two(x)
end

哪一个更好?是否有必要在方法的最后一个语句中使用x =?第一个更清楚吗?第二个是否会冒任何因为他们可能不知道它使用x做什么而引入更多错误的风险?哪一个是正确的编码方式?我什么时候想要使用第一种样式(尽管变量在代码分析中显示为未使用)?

2 个答案:

答案 0 :(得分:2)

为什么不进一步简化生活并做到:

def this_method(x)
   some_method_like_multiply_by_two(x + 5)
end

由于x纯粹是方法本地的,并且您返回调用另一个方法的结果,因此使用中间操作更新x不会完成任何操作。直奔目标。

答案 1 :(得分:1)

您是否正在尝试更改" x"的价值?传递给this_method?如果不是那么" x ="是浪费精力,特别是因为你没有使用x,除非你从方法返回x。如果您有两种选择:

def this_method(x)
   x = x + 5
   x = some_method_like_multiply_by_two(x)
   return x
end

或只是简单地说:

def this_method(x)
   x = x + 5
   x = some_method_like_multiply_by_two(x)
   x
end