当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Inflate.inflate用法及代码示例


本文简要介绍ruby语言中 Zlib::Inflate.inflate 的用法。

用法

inflate(deflate_string, buffer: nil) → String
inflate(deflate_string, buffer: nil) { |chunk| ... } → nil

deflate_string 输入到膨胀流中并返回流的输出。调用此方法,流的输入和输出缓冲区都被刷新。如果 string 是 nil ,则此方法完成流,就像 Zlib::ZStream#finish 一样。

如果给定一个块,则来自deflate_string 的连续膨胀块将屈服于该块并返回nil

如果给出了 a:buffer 关键字参数而不是 nil:

  • :buffer 关键字应该是 String ,并将用作输出缓冲区。使用此选项可以重用膨胀期间所需的内存。

  • 不传递块时,返回值将是与:buffer 关键字参数相同的对象。

  • 当传递一个块时,产生的块将与:buffer 关键字参数的值相同。

如果需要预设字典来解压缩,则会引发 Zlib::NeedDict 异常。 Set Zlib::Inflate#set_dictionary 的字典,然后用空字符串再次调用此方法以刷新流:

inflater = Zlib::Inflate.new

begin
  out = inflater.inflate compressed
rescue Zlib::NeedDict
  # ensure the dictionary matches the stream's required dictionary
  raise unless inflater.adler == Zlib.adler32(dictionary)

  inflater.set_dictionary dictionary
  inflater.inflate ''
end

# ...

inflater.close

另见 Zlib::Inflate.new

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Inflate.inflate。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。