當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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