Project1

标题: 新手教程——细说数组与哈希_(5) [打印本页]

作者: 一箭烂YiJL    时间: 2010-12-11 15:16
标题: 新手教程——细说数组与哈希_(5)
本帖最后由 一箭烂YiJL 于 2011-2-22 21:10 编辑

课序号:5
作者:一箭烂YiJL
出版社:VX教程出版社
售价:完全免费
VX教程出版社的其它教程

上一课:
新手教程——函数外的常量(实战篇)


序:
这一课是说数组(Array)与哈希(Hash)这间的分别,
这一课全都是理论课,我没有头绪怎么弄实战。
因为理论课的关系,所以能记多少就记多少。


正式开始:
还记得上次我教了函数外的常量,
也顺便教了数组和哈希,现在我要说一说他们的重点。


A.数组:

1.基本:
  1. b = ["VX教程","出版社","强大"]
  2. p b[0]          # => "VX教程"
  3. p b[1]          # => "出版社"
  4. p b[2]          # => "强大"
复制代码
注意:数组是从0开始数起
这一句也能得出:数组是有次序的
a[0]、a[1]的0、1在数组里叫做索引

建立或修改:
修改:
  1. a = [1, 3]
  2. a[0] = 7     # 妙处
  3. p a                # => [7, 3]
复制代码
建立:
  1. a = [1, 3]
  2. a[2] = 5     # 妙处
  3. p a                # => [1, 3, 5]
复制代码
判断:
判断有多少个数组:
  1. model = ["VX教程","出版社","强大"]
  2. p model.size                # => 3
  3. [code]
  4. 判断有否数值:
  5. [code]model = ["VX教程","出版社","强大"]
  6. p model.include?("很费")                # false
  7. p model.include?("强大")                # true
复制代码
B.哈希:

简单:
  1. b = {"一" => "VX教程", "出版权" => "出版社", "无" => "强大"}
  2. p b["一"]          # => "VX教程"
  3. p b["出版权"]          # => "出版社"
  4. p b["无"]          # => "强大"
复制代码
注意:哈希是没有顺序的!而且要用{}
左边的是key,右边的是values。(记住名字就好了)
在"一" => "VX教程"里,"一"是key,"VX教程"是values。

删除和添加:
删除:
  1. b = {"一" => "VX教程", "二" => "出版社"}
  2. a.delete("一")
  3. p b               # => {"二" => "出版社"}
复制代码
添加:
  1. b = {}
  2. b["一"] = 10
  3. p b               # => {"一" => 10}
  4. p b["一"]      # => 10
复制代码
判断:
判断是否包括:
  1. b = {"VX教程" => 10, "强大" => 20}
  2. p b.include?("VX教程")         # => true
  3. 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