在Ruby中,塊(Block)和迭代器(Iterator)是實現自定義邏輯的兩種強大工具。下面分別介紹它們的用法和實現自定義邏輯的方法。
塊是Ruby中的一種代碼結構,它允許你在方法調用時傳遞一段代碼。塊可以用于實現自定義邏輯,例如在數組或集合上執行操作。
示例:
# 自定義邏輯:將數組中的每個元素平方
numbers = [1, 2, 3, 4, 5]
squared_numbers = numbers.map { |number| number * number }
puts squared_numbers.inspect # 輸出:[1, 4, 9, 16, 25]
在這個例子中,我們使用了map
方法,它接受一個塊作為參數。塊中的代碼(|number| number * number
)對數組中的每個元素進行平方操作。
迭代器是一種允許你遍歷集合的對象。在Ruby中,你可以使用each
方法創建一個迭代器。迭代器可以用于實現自定義邏輯,例如在遍歷集合時執行特定操作。
示例:
# 自定義邏輯:計算數組中所有偶數的和
numbers = [1, 2, 3, 4, 5]
even_sum = numbers.select { |number| number.even? }.reduce(0) { |sum, number| sum + number }
puts even_sum # 輸出:6
在這個例子中,我們首先使用select
方法創建一個迭代器,該迭代器包含數組中的所有偶數。然后,我們使用reduce
方法對迭代器中的元素求和。reduce
方法接受一個初始值(在這里是0)和一個塊,塊中的代碼(|sum, number| sum + number
)將累加器(sum
)與當前元素(number
)相加。
通過使用塊和迭代器,你可以輕松地實現自定義邏輯,從而對數據集執行特定操作。