Project1

标题: 三維數組可不可以使用Marshal.dump ? [打印本页]

作者: 土撥撥    时间: 2010-8-6 13:45
标题: 三維數組可不可以使用Marshal.dump ?
本帖最后由 土撥撥 于 2010-8-6 21:00 编辑

我最近正在做格式研究時 發現三維數組似乎不能Marshal.dump....

  1. @A = [ [[000,001],[010,011],[020,021]] , [[100,101],[110,111]] ]
  2. @K = Marshal.dump(@A)
  3. @M = Marshal.load(@K)
  4. print @M[0][2][1]
复制代码
這時候 出來的結果原應為 21 但是我把它print出來 出現的卻是17...
有沒有方法能讓Marshal支援三維數組呢?
作者: 紫苏    时间: 2010-8-6 14:03
Marshal 没问题,是你的常量整数字面值写法有问题,021 如果整数字面值由 0 打头,那么解释器会把它当做八进制解释,所以八进制 021 = 十进制 17
作者: zhangbanxian    时间: 2010-8-6 14:35
你前面多加了一个0
作者: 调律    时间: 2010-8-6 14:41
在0前面加0d就好
p 21            #=>21
p 021          #=>17
p 0d021      #=>21
作者: 土撥撥    时间: 2010-8-6 20:28
可是我上次弄了一組十位數的數字

放到三維 然後整個數組dump進去

出來的結果只有三個位數...而且當初的十位數字開頭不是0......
作者: zhangbanxian    时间: 2010-8-6 20:42
回复 土撥撥 的帖子你指的是Table吧,Table对数值有限制的貌似只能4到5位。


   
作者: IamI    时间: 2010-8-6 20:45
Table的数据总数上限为4个字节(4294967295个数据)
每个数据的上限为带符号的2个字节(-32767~32768)
作者: 土撥撥    时间: 2010-8-6 21:00
噢!那我懂了 謝謝你們~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1