在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
数组和哈希表 Ruby的数组和哈希表是索引集合。两都都是保存对象集合并能通过键来读取。数组的键是数字,但是哈希表则支持对象作为键。它们都是随着新元素的加入要增长。在访问元素方面,数组效率比较高,但哈希表更加的灵活。无论是数组还是哈希表,都能保存不同类型的对象;你可以使用一个数组保存数字,字符串和浮点数,就像你等会将会看到的那样。 你可以使用数组文本来创建和初始化一个新的数组——一个由中括号包围的元素集合。对于一个数组,你能通过使用中括号间的数字来获取每个元素,就如例子所演示的那样。要注意,Ruby的数组是从0开始的。 a = [ 1, 'cat', 3.14 ] # array with three elements 你可能已经注意到,我们在例子中使用了一个特殊的值nil。在许多语言中,nil的概念(或者null)是"没有对象"。在Ruby中,不是这样子的;nil是一个对象,就和其它对象一样;它代表什么都没有。不管怎样,让我们回到数组和哈希表吧。 有时候,创建单词数组是件痛苦的事情,它包含了许多引号和逗号。幸运的,Ruby有一个快捷的方式:%w能使用我们只做我们想做的。 a = [ 'ant', 'bee', 'cat', 'dog', 'elk' ] Ruby的哈希表和数组很相似。哈希表使用花括号而不是中括号。哈希表需要为每个项提供两个对象:一个是键,另一个是它的值。 例如,你想为乐队表示音乐器材。你可以使用哈希表来实现它。 inst_section = { 在=>左边的是键,在右边的是它对应的值。键在每个具体的哈希表中是唯一的,你不能有两个"drum"项。键和值在哈希表中可以是任意的对象——你可以哈希数组,甚至其它的哈希表等等。 哈希表使用和数组一样的中括号索引。 inst_section['oboe'] -> "woodwind" 就如最后一个例子中所看到的,如果键不存在,哈希表默认是返回nil。通常,这样做很方便,在使用条件表达式中,nil的意思是false。有时候,你想要改变这个默认值。例如,你想计算哈希表中键的访问次数,如果默认值是0就比较方便了。当你创建一个新的空的哈希表时很容易指定一个默认值。 histogram = Hash.new(0) 控制结构 Ruby拥有所有常用的控制结构,像if语句和while循环。Java,C,和Perl程序会因为语句体中缺少花括号而出错。替代的,Ruby使用关键字end来表示语句体的结束。 if count > 10 类似的,while语句也是使用end结束。 while weight < 100 and num_pallets <= 30 Ruby中大部分的声明都有一个返回值,你可以使用它作为条件语句。例如,gets方法从标准输入流中返回下一行或者当到达文件末尾时返回nil。因为在条件语句中Ruby把nil看成是false,你可以使用下面的代码来处理文件的所有行。 while line = gets 这里,这个声明设置变量line的值为下一行或nil,然后while检测这个变量,当它为nil时结束循环。 当if或while声明只有一行代码时,Ruby的代码修饰符是一个有用的简化。只需要在表达式后面写上简单的条件语句。例如,下面是一个简单的if代码愉。 if radiation > 3000 再一次这个代码,使用代码修饰符重写它。 puts "Danger, Will Robinson" if radiation > 3000 while循环类似的代码如下: square = 2 这个代码修饰符和Perl程序看起来比较熟悉。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论