Project1
标题:
新手教程——细说数组与哈希_(5)
[打印本页]
作者:
一箭烂YiJL
时间:
2010-12-11 15:16
标题:
新手教程——细说数组与哈希_(5)
本帖最后由 一箭烂YiJL 于 2011-2-22 21:10 编辑
课序号:5
作者:一箭烂YiJL
出版社:VX教程出版社
售价:完全免费
VX教程出版社的其它教程
上一课:
新手教程——函数外的常量(实战篇)
序:
这一课是说数组(Array)与哈希(Hash)这间的分别,
这一课全都是理论课,我没有头绪怎么弄实战。
因为理论课的关系,所以能记多少就记多少。
正式开始:
还记得上次我教了函数外的常量,
也顺便教了数组和哈希,现在我要说一说他们的重点。
A.数组:
1.基本:
b = ["VX教程","出版社","强大"]
p b[0] # => "VX教程"
p b[1] # => "出版社"
p b[2] # => "强大"
复制代码
注意:数组是从0开始数起
这一句也能得出:
数组是有次序的
a[0]、a[1]的0、1在数组里叫做
索引
。
建立或修改:
修改:
a = [1, 3]
a[0] = 7 # 妙处
p a # => [7, 3]
复制代码
建立:
a = [1, 3]
a[2] = 5 # 妙处
p a # => [1, 3, 5]
复制代码
判断:
判断有多少个数组:
model = ["VX教程","出版社","强大"]
p model.size # => 3
[code]
判断有否数值:
[code]model = ["VX教程","出版社","强大"]
p model.include?("很费") # false
p model.include?("强大") # true
复制代码
B.哈希:
简单:
b = {"一" => "VX教程", "出版权" => "出版社", "无" => "强大"}
p b["一"] # => "VX教程"
p b["出版权"] # => "出版社"
p b["无"] # => "强大"
复制代码
注意:哈希是没有顺序的!而且要用{}
左边的是key,右边的是values。(记住名字就好了)
在"一" => "VX教程"里,"一"是key,"VX教程"是values。
删除和添加:
删除:
b = {"一" => "VX教程", "二" => "出版社"}
a.delete("一")
p b # => {"二" => "出版社"}
复制代码
添加:
b = {}
b["一"] = 10
p b # => {"一" => 10}
p b["一"] # => 10
复制代码
判断:
判断是否包括:
b = {"VX教程" => 10, "强大" => 20}
p b.include?("VX教程") # => true
p b.include?("XP教程") # => false
复制代码
总结,我们学习了:
1.数组与哈希之间的最大分别
2.数组(Array)的详细用法
3.哈希(Hash)的详细用法
看完教程请回复,
我们需要的是支持!!
好了,这堂理论课上完了,谢谢大家。
下一课:
新手教程——参数与显示图片
作者:
夕阳武士
时间:
2010-12-11 15:25
这个,还没想好怎么称呼= =
话说lz也是高产稳产阿~
ps:请第一位看到的斑竹为我扣400奖金
作者:
苏小脉
时间:
2010-12-12 09:25
太棒了,一箭同志深谙“抓革命才能促生产”之道
为了严谨起见,还是要提一下,从 Ruby 1.9.1 开始,内置的 Hash 对象结构就是有序的了,详见
http://rpg.blue/forum.php?mod=vi ... page%3D1&page=3
36楼。当然,RM 的 Ruby 1.8.4 自然还是传统意义上的散列表。
作者:
一箭烂YiJL
时间:
2010-12-12 09:34
回复
苏小脉
的帖子
只是有个问题,我们VX所用的RGSS2(好像)不会因为Ruby的1.9.1而改变,
是否需要注明有关Ruby1.9.1的Hash?
一箭烂YiJL于2010-12-12 10:15补充以下内容:
我问要不要注明新Hash的资讯当时课外知识?
作者:
企鹅达达
时间:
2010-12-12 11:36
b = {"VX教程" => 10, "强大" => 20}
p b.include?(20)
小小问句,上面结果会是True还是False?
作者:
DeathKing
时间:
2010-12-12 11:41
回复
企鹅达达
的帖子
hsh = {"a" =>1, "b"=>2}
hsh.has_value? 2 #=>true
hsh.has_key? 2 #=> false
hsh.include? 2 #=>false
DeathKing于2010-12-12 11:56补充以下内容:
RMVX Tips那个帖子里面ZH有讨论关于括号的问题。(在不引起歧义的情况下,括号可省略)
作者:
summer92
时间:
2010-12-12 15:09
终于了解了HX非常感谢!
作者:
mummyx
时间:
2011-2-9 10:52
提示:
作者被禁止或删除 内容自动屏蔽
作者:
一箭烂YiJL
时间:
2011-2-9 10:59
回复
mummyx
的帖子
嗯,补充一个,这是错误在哈希的第2堆代码里。
(又来了,请看8、9楼纠正。)
作者:
漫漫人生路
时间:
2011-2-17 14:14
结合F1帮助文件看起来好多了
作者:
zenkl
时间:
2011-2-22 11:26
本帖最后由 zenkl 于 2011-2-22 11:47 编辑
1.哈希表的数值修改能否像数组一样直接赋值修改?
b = {"一"=>5,"二"=>3}
b.["一"] = 10
p b # => ?
2. model.size 和 b.include?("VX教程") 是用来判断附加码和key的,貌似与value无关?
作者:
铃仙·优昙华院·因幡
时间:
2011-2-22 12:56
a[0]、a[1]的0、1在数组里叫做附加码。
个人感觉应该叫 索引值 是不是更好一点? Ruby 的 Array 和 C 的不一样的说. 不知道能不能这么叫.
作者:
一箭烂YiJL
时间:
2011-2-22 17:33
回复
铃仙·优昙华院·因幡
的帖子
镇馆之宝!XD= =(某人被雷到的4个字)
我感觉序列号/排列号会好一点。("号"字的意思应该包括了编号或索引吧~中文不大清楚的)
回到第一页时发现新的脚本框令页面弹上弹下的,小小的脚本还要这么大的框。
铃仙换了之前那个冷酷的头像后(那个头像很吓人),现在这个给人的感觉好多了。
最终还没决定怎么叫。
作者:
铃仙·优昙华院·因幡
时间:
2011-2-22 20:19
脚本框是一个吐槽点. 不会区分大小.
在 C 里的数组的下标是叫索引的, 因为可以直接使用地址来取值. 一种是 a[n] , 另一种是 *(a + n * sizeof(type))
然后是数组还有一种构造方式, 也就是 Array.new([size[, value]]) , 不过需要注意一个陷阱就是了~~~
以上是废话..
PS: 之前的头像不好看么????
作者:
一箭烂YiJL
时间:
2011-2-22 21:09
回复
铃仙·优昙华院·因幡
的帖子
看"Ruby每日一帖(什么的)",页面弹上弹下弹上弹下,无法控制,过一阵子才能慢慢观赏。。。
怕了脚本框。(呵~)
a = [2,1]
a[-1] = 5 # 由于听说C是可以负面值
于是ruby的数组-1就会从0倒数回a[1]。
于是a[-2] = 5就会修改a[0],于是又a[-3] = 5,就抛出IndexERROR。。。
以上绝对废话。。。那么索引就叫索引吧~(去主楼修改)
之前那个头像太冷酷、吓人了,与你回答同一帖时感觉很严肃。。。(看过以来最威力的头像)
(黄亦天那我、DK和你的认可贴(我指的其中一贴)还没处理。。。换一个马甲处理吧)
然后就到了你那个"从0学起RGSS2"(什么的)那一帖的数组教程,
这次真的怕了,需要47秒多才能开始控制。。。况且那个"数组"教程的位置也不准了。
作者:
铃仙·优昙华院·因幡
时间:
2011-2-22 21:36
回复
一箭烂YiJL
的帖子
C 里不能是负值. 因为 C 里的数组之前的数据时不可预知的. 也就是说不确定是不是数组的东西.
索引值感觉更加形象点点.
之前的那个头像么? 嘛, 以后有建议就和咱说说吧. 之前自己感觉还不错. 只是没想到冷酷这个词汇的说. 于是, 抱歉~~~
"数组"教程的位置也不准了??? 楼数么??? 咱去看看~~~
作者:
冰舞蝶恋
时间:
2011-3-13 14:07
好厉害,咱对数组一窍不通…………
作者:
忧雪の伤
时间:
2011-3-13 14:37
本帖最后由 忧雪の伤 于 2011-3-13 14:38 编辑
冰舞蝶恋 发表于 2011-3-13 14:07
好厉害,咱对数组一窍不通…………
好厉害,咱对哈希一窍不通…………
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1