#块中的代码总是包含在大括号 {} 内。 #块总是从与其具有相同名称的函数调用。这意味着如果您的块名称为 test,那么您要使用函数 test 来调用这个块。 #您可以使用 yield 语句来调用块。 #block和方法之间是协同例程,它们之间来回地转换控制权 #不带参数 def test puts "test1" yield #使用多个yield,可以多次执行block中的代码 puts "test2" end test{ #多个block可以多次执行所有代码(即定义的方法中的代码) puts "hello ruby" } test{ puts "hello world" } #带参数 def test1 yield 100,1000,1 end test1 {|i,j,k| puts i+j+k} # ||中用来接收来自yield的参数 #迭代 nums = Array[1,2,3,4] nums.each {|num| puts num} # BEGIN块:在文件加载时要运行(即在该文件中第一个运行) # END块:程序完成执行后要运行的代码块 BEGIN{ puts "begin" } END{ puts "end" }