本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。