【发布时间】:2021-08-13 21:01:02
【问题描述】:
根据最流行的风格指南:
# this a bad
def some_function
return "some value"
end
# this is good
def some_function
"some value"
end
我正在使用 Ruby on Rails,我经常看到这样的代码,这些样式指南没有提到:
def some_function(x)
result = some_calculations(x)
result
end
我已经尝试过了,它有效,所以我不明白在下一行赋值后显式返回变量的基本原理:
# this works as well
def some_function(x)
result = some_calculations(x)
end
【问题讨论】:
-
当我们可以直接返回语句时,为什么我们需要分配给一个变量。当方法的最后一行有语句并且该语句的结果应该是 return 时,我们不需要将其存储在变量中,除非它是实例变量并在其他方法中使用。在您的示例中,您需要将其分配给一个变量。您可能需要一个变量,以防在将值分配给变量后运行其他指令并在执行其他操作后返回该变量。
-
感谢您的回复!通过执行其他操作,您的意思是在不重新分配变量的情况下更改变量的值? @HirenBhalani
-
是的,并且可能会根据该变量找出其他东西而不更改它,但返回该变量。
-
@sava128 :根据您的警告级别,您的最后一个解决方案会警告您
result已分配,但未使用。如果它是块或函数中的最后一条语句,我看不出分配给局部变量的任何目的。
标签: ruby-on-rails ruby string