if (false) BEGIN { puts "if"; # 这里会被打印 a = 4; # 这里的变量只存在于BEGIN块中 } else BEGIN { puts "else" } # 这里也会被打印 end 10.times {BEGIN { puts "loop" }} # BEGIN位于迭代器中时,只被打印一次
如你所见,在BEGIN中的变量只在它所在的BEGIN块中又要,而END不同,由于它在所有代码执行之后执行,所以,外部变量也可以在END中访问。
a = 4; if (true) END { # 这里会执行 puts "if"; # 打印 puts a # 这里的a是一个外部变量,打印 "4" } else END { puts "else" } # 这里不会执行,因为前面的条件判断不成立 end 10.times {END { puts "loop" }} # 在迭代器中只执行一次
No comments:
Post a Comment