基本块示例:
# 使用块的方法
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.pingtaimeng.com/article/detail/6453/Ruby