Ruby: 对整数使用 pack("n")

Ruby: using pack("n") with integers

我知道我需要使用 [5].pack("n") 例如。这会产生输出 "\x00\x05"

但是现在我想打包一个字符串的长度。如果我使用:

"Hello".length.pack("n")

我收到错误

undefined method `pack' for 5:Fixnum (NoMethodError).

我该如何解决这个问题?我已经尝试将 "Hello".length 转换为带有 "Hello".length.to_i 的整数,但随后出现相同的错误。有什么办法可以解决这个问题吗?

您需要使用数组,而不是整数("Hello".length 已经是一个)。

["Hello".length].pack("n")
# => "\x00\x05"