本文简要介绍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 Buffer.set_value用法及代码示例
- Ruby Buffer.external?用法及代码示例
- Ruby Buffer.free用法及代码示例
- Ruby Buffer.new用法及代码示例
- Ruby Buffer.for用法及代码示例
- Ruby Buffer.locked?用法及代码示例
- Ruby Buffer.transfer用法及代码示例
- Ruby Buffer.map用法及代码示例
- Ruby Buffer.clear用法及代码示例
- Ruby Buffer.copy用法及代码示例
- Ruby Buffer.locked用法及代码示例
- Ruby Buffer.get_value用法及代码示例
- Ruby Buffer.get_string用法及代码示例
- Ruby Buffer.to_s用法及代码示例
- Ruby Buffer.resize用法及代码示例
- Ruby Buffer类用法及代码示例
- Ruby Buffering.read_nonblock用法及代码示例
- Ruby Buffering.write_nonblock用法及代码示例
- Ruby Bundler.setup用法及代码示例
- Ruby Bundler模块用法及代码示例
- Ruby Bundler.require用法及代码示例
- Ruby Bundler.definition用法及代码示例
- Ruby BigMath.cos用法及代码示例
- Ruby Binding.local_variable_defined?用法及代码示例
- Ruby BigDecimal.self >用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Buffer.slice。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。