在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块如何与其他结构结合使用,以实现更灵活和强大的代码。