gpt4 book ai didi

ruby - 在 Ruby 中计算数组包结构格式的大小

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:42 25 4
gpt4 key购买 nike

例如dddddd是系统的原生格式,所以我不知 Prop 体有多大。

在 python 中我可以这样做:

import struct
print struct.calcsize('ddddd')

这将返回 40

我如何在 Ruby 中获得它?

最佳答案

我还没有找到执行此操作的内置方法,但是当我知道我只处理数字格式时,我已经成功地使用了这个小函数:

  def calculate_size(format)
# Only for numeric formats, String formats will raise a TypeError
elements = 0
format.each_char do |c|
if c =~ /\d/
elements += c.to_i - 1
else
elements += 1
end
end
([ 0 ] * elements).pack(format).length
end

这会构造一个由适当数量的零组成的数组,使用您的格式调用 pack(),并返回长度(以字节为单位)。零在这种情况下起作用,因为它们可以转换为每种数字格式(整数、 double 、 float 等)。

关于ruby - 在 Ruby 中计算数组包结构格式的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4485983/

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