End of Life Ruby 3.0 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
instance method
String#unpack1
str.unpack1(format) → obj
pack.rb
View on GitHub ↗
# File tmp/rubies/ruby-3.0.5/pack.rb, line 280
def unpack1(fmt)
Primitive.pack_unpack1(fmt)
end
Decodes str (which may contain binary data) according to the format string, returning the first value extracted. See also String#unpack, Array#pack.
Contrast with String#unpack:
Example
"abc \0\0abc \0\0".unpack('A6Z6') #=> ["abc", "abc "] "abc \0\0abc \0\0".unpack1('A6Z6') #=> "abc"
In that case data would be lost but often it’s the case that the array only holds one value, especially when unpacking binary data. For instance:
“\xff\x00\x00\x00”.unpack(“l”) #=> [255] “\xff\x00\x00\x00”.unpack1(“l”) #=> 255
Thus unpack1 is convenient, makes clear the intention and signals the expected return value to those reading the code.