#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
# 块
# 你可以使用 yield 语句来调用块
# 如果方法的最后一个参数前带有 &, 你可以向该方法传递一个块, 且这个块可被赋给最后一个参数.
# 如果 * 和 & 同时出现在参数列表中, & 应放在后面.
def test(&block)
puts "在 test 方法内"
if block then yield end
puts "你又回到了 test 方法内"
if block then yield end
end
test {
puts "你在块内"
}
puts
test
puts
# 带有参数的 yield 语句
def test2
yield 5, 10
puts "在 test 方法内"
yield 50, 100
end
test2 {
|i, j| puts "你在块 #{i} #{j} 内"
}
# BEGIN 和 END 块
# ...生命周期方法...
# 每个 Ruby 源文件可以声明当文件被加载时要运行的代码块(BEGIN块), 以及程序完成执行后要运行的代码块(END块).
BEGIN {
puts "Exe Begin"
}
END {
puts "Exe End"
}
网友评论