1ij*_*ijk 0 ruby each for-loop coding-style keyword
我个人喜欢for在Ruby中使用关键字进行迭代,因为它从我的眼睛看起来很干净.我通常认为for可能是别名Enumerable#each,但我不知道是否正确.在最基本的例子中:
for i in (1..10)
puts i
end
Run Code Online (Sandbox Code Playgroud)
行为与...相同
(1..10).each do |i|
puts i
end
Run Code Online (Sandbox Code Playgroud)
只是没有创建一个新的变量范围.此外,ruby-doc说
该
for循环在现代Ruby程序很少使用.
这让我觉得有一个特定的,技术上的原因反对使用.没有新的变量范围是否重要?以什么方式?
行为与...相同
这是不正确的.for建立在它之上each,但它在语义上是不同的:
array = %w(a b c d)
array.each { |character| }
defined? character # nil
for character in array; end
defined? character # "local-variable"
Run Code Online (Sandbox Code Playgroud)
该for关键字不引入新的范围.块内引入的任何变量在其外部仍然可见; 好像它是内联写的.
在决定使用哪种表格时,您应该考虑这一事实.