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


Ruby Buffer.slice用法及代码示例


本文简要介绍ruby语言中 IO::Buffer.slice 的用法。

用法

slice(offset, length) → io_buffer

生成另一个 IO::Buffer ,它是当前切片的切片(或视图),从 offset 字节开始,一直到 length 字节。

切片在没有复制内存的情况下发生,并且切片保持与原始缓冲区的源(字符串或文件)相关联,如果有的话。

如果 offset+length 超出当前缓冲区的范围,则引发 RuntimeError

string = 'test'
buffer = IO::Buffer.for(string)

slice = buffer.slice(1, 2)
# =>
#  #<IO::Buffer 0x00007fc3d34ebc49+2 SLICE>
#  0x00000000  65 73                                           es

# Put "o" into 0s position of the slice
slice.set_string('o', 0)
slice
# =>
#  #<IO::Buffer 0x00007fc3d34ebc49+2 SLICE>
#  0x00000000  6f 73                                           os

# it is also visible at position 1 of the original buffer
buffer
# =>
#  #<IO::Buffer 0x00007fc3d31e2d80+4 SLICE>
#  0x00000000  74 6f 73 74                                     tost

# ...and original string
string
# => tost

相关用法


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