在Ruby中,块(Blocks)是一种用于传递代码片段的结构,通常与方法一起使用。块可以被传递给方法,并在方法内部执行。以下是一些关于Ruby块的基本示例:

基本块示例:
# 使用块的方法
def do_something
  puts "Start of the method"
  yield   # 执行块
  puts "End of the method"
end

# 调用方法并传递块
do_something do
  puts "Inside the block"
end

在上面的例子中,yield用于执行传递给方法的块。

带参数的块:
# 方法接受块并传递参数
def greet
  puts "Hello"
  yield("John") if block_given?
end

# 调用方法并传递块以及参数
greet do |name|
  puts "Greetings, #{name}!"
end

使用块作为变量:
# 将块存储在变量中并稍后调用
my_block = Proc.new do
  puts "This is a stored block"
end

# 调用存储的块
my_block.call

使用block_given?检查是否传递了块:
def with_block
  puts "Method without block"
  yield if block_given?
end

# 调用方法,有时传递块,有时不传递
with_block
with_block do
  puts "Method with block"
end

这只是Ruby中块的基本用法。块在Ruby中的应用非常广泛,它们与迭代器一起使用,提供了一种灵活而强大的代码组织方式。


转载请注明出处:http://www.zyzy.cn/article/detail/6453/Ruby