导入
为更多问题求解做好准备
了解 Ruby 中数组和哈希数据类型的相关方法。
动机
要成为一名更出色的 Ruby 开发者,我们需要更多的练习!在本章中,我们将解决各种谜题,通过这些谜题来探索两个新概念:递归和回溯。同时,我们希望更熟练地运用数据结构,尤其是掌握 Ruby 内置函数来快速完成小型任务。熟悉一种数据类型所定义的方法,可能在处理另一种数据类型时也会有所帮助。
类似数组和哈希的方法
1# 数组的 all? 方法 2arr1 = [3, 20, 30] 3result = arr1.all? { |num| num > 2 } 4puts result 5 6# 哈希的 all? 方法 7data = { "Jack" => 9, "Sarah" => 6, "Amanda" => 27 } 8output = data.all? { |name, val| val > 3 && name != "Jack" } 9puts output
1# 数组的 collect 方法 2arr1 = [3, 20, 30] 3arr2 = arr1.collect { |num| num * 2 } 4puts arr2.inspect 5 6# 哈希的 collect 方法 7puts "........................" 8hash = { "Jack" => 9, "Sarah" => 6, "Amanda" => 27 } 9hash_updated = hash.collect { |name, val| "#{name} => #{val * 2}" } 10puts hash_updated.inspect
1# 数组的 each 方法 2arr1 = [3, 20, 30] 3arr1.each { |num| puts "The value is #{num}" } 4 5# 哈希的 each 方法 6puts "..............." 7hash = { "Jack" => 9, "Sarah" => 6, "Amanda" => 27 } 8hash.each { |name, val| puts "#{name}'s age is #{val}" }
1# 数组的 dup 方法 2arr1 = [3, 20, 30] 3arr2 = arr1.dup 4puts arr1.inspect 5puts arr2.inspect 6 7# 哈希的 dup 方法 8puts "........................" 9hash1 = { "Jack" => 9, "Sarah" => 6, "Amanda" => 27 } 10hash2 = hash1.dup 11hash2["Jack"] = 11 12puts hash1.inspect 13puts hash2.inspect
1# arr1 是一个包含三个数组和一个 nil 对象的数组 2arr1 = [[1, 2], [3, 4], [5, 6], nil] 3arr2 = arr1.flatten 4puts arr2.inspect 5 6arr3 = arr1.flatten.compact 7puts arr3.inspect