在Ruby中,块(block)是一种非常强大的特性,它可以与其他结构(如数组、哈希表、类、方法等)结合使用。块可以被视为一个匿名函数,它可以在执行特定操作时传递给它。下面是一些常见的块与其他结构结合的示例:
- 与数组结合:
array = [1, 2, 3, 4, 5] array.each do |element| puts element * 2 end
在这个例子中,块与数组array
结合使用,对数组中的每个元素执行乘以2的操作。
- 与哈希表结合:
hash = {a: 1, b: 2, c: 3} hash.each do |key, value| puts "#{key}: #{value}" end
在这个例子中,块与哈希表hash
结合使用,遍历哈希表的键值对并打印它们。
- 与类结合:
class MyClass
def initialize(name)
@name = name
end
def say_hello
puts "Hello, my name is #{@name}."
end
end
MyClass.new("John").say_hello
在这个例子中,块与类MyClass
结合使用,通过new
方法创建一个新的实例,并调用say_hello
方法。
- 与方法结合:
def my_method(arg1, &block) puts "Argument 1: #{arg1}" block.call(arg1 * 2) if block end my_method(5) { |x| puts "Block argument: #{x}" }
在这个例子中,块与方法my_method
结合使用,接受一个参数和一个可选的块。如果提供了块,它将在方法内部执行。
这些示例展示了Ruby块如何与其他结构结合使用,以实现更灵活和强大的代码。