gpt4 book ai didi

ruby 字符串#unpack

转载 作者:数据小太阳 更新时间:2023-10-29 07:19:22 25 4
gpt4 key购买 nike

我有一个由 3 个字符串组成的打包字符串,这样我就有一个整数,指定下一个项目的字节长度,然后是那个项目的字节,然后是下一个项目的字节大小,等等,就好像有人做了:

[a.bytesize, a, b.bytesize, b, c.bytesize, c].pack("na*na*na*")

我怎样才能以简单的方式正确地解压它?这个问题的 Perl 解决方案是:

my($a, $b, $c) = unpack("(n/a*)3", $data)

对于 ruby​​,在解包时显然不支持 '/' 和括号,我使用类似的东西:

vals = []
3.times do
size = data.unpack("n").first
data.slice!(0, 2)
vals << data.unpack("a#{size}").first
data.slice!(0, size)
end

有更简单的方法吗?

最佳答案

恕我直言,这不像在 PERL 中那么容易,但这是我可以建议的一些解决方案。

unpacked = []
a, b, c = *unpacked << data.slice!(0, data.slice!(0, 2).unpack('S>').first) \
until data.empty?

关于 ruby 字符串#unpack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14910394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com