16、Ruby 数组与哈希操作全解析

Ruby 数组与哈希操作全解析

1. 数组操作

在 Ruby 中,数组是一种非常常用的数据结构,它提供了丰富的操作方法。

1.1 提取元素

Array#reject! 方法可以移除数组中符合代码块条件的元素,但它不会返回被移除的元素。为了实现类似 Enumerable#find_all 的破坏性操作,可以自定义 extract! 方法:

class Array
  def extract!
    ary = self.dup
    self.reject! { |x| yield x }
    ary - self
  end
end

a = ("a".."h").to_a
a.extract! { |x| x < "e" && x != "b" }     # => ["a", "c", "d"]
a                                          # => ["b", "e", "f", "g", "h"]

此外,还可以定义 grep_extract! 方法,它可以破坏性地近似 Enumerable#grep 的行为:

class Array
  def grep_extract!(re)
    extract! { |x| re.match(x) }
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值