查看: 1957|回复: 7

[已经解决] 三維數組可不可以使用Marshal.dump ?

[复制链接]
梦石
0
星屑
95
在线时间
18 小时
注册时间
2008-1-22
回帖
30
发表于 2010-8-6 13:45:39 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 土撥撥 于 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支援三維數組呢?
梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2010-8-6 14:03:15 | 显示全部楼层
Marshal 没问题,是你的常量整数字面值写法有问题,021 如果整数字面值由 0 打头,那么解释器会把它当做八进制解释,所以八进制 021 = 十进制 17
回复

使用道具 举报

梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
回帖
1296
发表于 2010-8-6 14:35:56 | 显示全部楼层
你前面多加了一个0
好歹当年也当过大魔王过,orz
回复

使用道具 举报

梦石
0
星屑
50
在线时间
1 小时
注册时间
2010-7-28
回帖
35
发表于 2010-8-6 14:41:27 | 显示全部楼层
在0前面加0d就好
p 21            #=>21
p 021          #=>17
p 0d021      #=>21
For to him that is joined to all the living there is hope; for a living dog is better than a dead lion.
For the living know that they shall die: but the dead know not any thing, neither have they any more a reward; for the memory of them is forgotten.
——Ecclesiastes
回复

使用道具 举报

梦石
0
星屑
95
在线时间
18 小时
注册时间
2008-1-22
回帖
30
 楼主| 发表于 2010-8-6 20:28:04 | 显示全部楼层
可是我上次弄了一組十位數的數字

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

出來的結果只有三個位數...而且當初的十位數字開頭不是0......
回复

使用道具 举报

梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
回帖
1296
发表于 2010-8-6 20:42:42 | 显示全部楼层
回复 土撥撥 的帖子你指的是Table吧,Table对数值有限制的貌似只能4到5位。


   
回复

使用道具 举报

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2010-8-6 20:45:35 | 显示全部楼层
Table的数据总数上限为4个字节(4294967295个数据)
每个数据的上限为带符号的2个字节(-32767~32768)
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

梦石
0
星屑
95
在线时间
18 小时
注册时间
2008-1-22
回帖
30
 楼主| 发表于 2010-8-6 21:00:01 | 显示全部楼层
噢!那我懂了 謝謝你們~
RGSS研究專員
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部