本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。