本文簡要介紹ruby語言中 String.unpack1
的用法。
用法
unpack1(format) → obj
unpack1(format, offset: anInteger) → obj
根據格式字符串解碼str
(可能包含二進製數據),返回提取的第一個值。
另見 String#unpack
、 Array#pack
。
與 String#unpack
對比:
"abc \0\0abc \0\0".unpack('A6Z6') #=> ["abc", "abc "]
"abc \0\0abc \0\0".unpack1('A6Z6') #=> "abc"
在這種情況下,數據會丟失,但通常情況下數組隻保存一個值,尤其是在解包二進製數據時。例如:
"\xff\x00\x00\x00".unpack("l") #=> [255]
"\xff\x00\x00\x00".unpack1("l") #=> 255
因此 unpack1 很方便,明確了意圖並向閱讀代碼的人發出了預期的返回值。
跳過指定字節數後,可以給出關鍵字offset
開始解碼:
"abc".unpack1("C*") # => 97
"abc".unpack1("C*", offset: 2) # => 99
"abc".unpack1("C*", offset: 4) # => offset outside of string (ArgumentError)
相關用法
- Ruby String.unpack用法及代碼示例
- Ruby String.unicode_normalize用法及代碼示例
- Ruby String.unicode_normalized?用法及代碼示例
- Ruby String.undump用法及代碼示例
- Ruby String.upcase用法及代碼示例
- Ruby String.upto用法及代碼示例
- Ruby String.upcase!用法及代碼示例
- Ruby String.match?用法及代碼示例
- Ruby String.scan用法及代碼示例
- Ruby String.dump用法及代碼示例
- Ruby String.oct用法及代碼示例
- Ruby String.size用法及代碼示例
- Ruby String.scrub用法及代碼示例
- Ruby String.to_sym用法及代碼示例
- Ruby String.chop用法及代碼示例
- Ruby String.bytesize用法及代碼示例
- Ruby String.count用法及代碼示例
- Ruby String.string <=>用法及代碼示例
- Ruby String.ascii_only?用法及代碼示例
- Ruby String.downcase用法及代碼示例
- Ruby String.capitalize用法及代碼示例
- Ruby String.length用法及代碼示例
- Ruby String.lines用法及代碼示例
- Ruby String.center用法及代碼示例
- Ruby String.casecmp用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 String.unpack1。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。