最佳做法是先定义 var,然后再在开始块中使用它们

  • 本文关键字:开始 然后 定义 var 最佳 ruby
  • 更新时间 :
  • 英文 :

foo = ''
begin
  foo = 'hi there'
rescue
end
puts foo

如果我在开始之前不关心 foo = '' 在顶部它仍然有效。但我看到很多人这样做。而且感觉更好。但这是最佳实践吗?

这部分是偏执狂,部分是清晰。在这个微不足道的例子中,不太可能有问题,但是如果你有这个呢?

begin
  foo = complicated_method_call(with: lots_of_arguments, and: another_call(with: args))
rescue
end

一大堆东西可能会出错,如果是这样的话,你最终会foonil .

现在,使用盲rescue通常是不好的形式,理想情况下,您希望将范围缩小到代码可能触发的范围。

请记住,Ruby 变量是在方法级别定义的,方法中的任何实例都会定义它们,但它们的默认值为 nil,这可能是不希望的。

如您所知,对于 Ruby 来说,只要您为其赋值/对象,变量就会存在,使其成为弱/松散类型(而不是"强类型")语言。为什么?该语言设计者的重点是简单易用 - 请参阅手册:)中的声明。还要记住,如果没有混淆,则无需在方法中编写"return"来返回值,也不需要在调用函数时写括号。为什么?简单,易于使用。很难说这些东西作为一般答案是否更好。我们是否必须始终依赖编译器检查?我们是专业吗?真?但一般来说,我们很难找到Ruby程序员总是声明变量,除非实例/全局变量,最后我们会让自己冲进主流。耶!确定变量类型的一般答案:https://en.wikipedia.org/wiki/Duck_test 玩得开心!

相关内容

最新更新