1.6Ruby数据结构之数组(Array)、哈希(Hash)、集合(Set)

数组(Array)

数组是带索引的对象的集合。

  • 数组中的元素是有序的,通过索引访问。
  • 数组中的元素不必都属于同一个类型,而且可以随时替换元素。
  • 数组的长度(元素的个数)可以动态改变,可以向数组添加、删除元素。
nums = [1,2,3,4,5]
strs = ["a","b","c","d"]
print strs[0]    #=>a

哈希(Hash)

哈希,又称为 散列映射(map)、关联数组

  • 哈希中的值是通过键访问的。
  • 哈希里的值不必都属于同一个类型,而且可以随时替换值。
  • 哈希的长度(元素的个数)可以动态改变,可以向哈希添加、删除元素。

哈希与数组一样,都是表示对象的集合的对象。数组通过索引访问对象的元素,而哈希则是使用键。索引只能是数值,而键则可以是任意对象。通过使用键,哈希就可以实现对元素的访问与赋值。

{ 键 => 值 }
h1 = {"a"=>"b","c"=>"d"}
p h1["a"]               #=> "b"

另外,用符号作为键时,也可以用下面的方法定义。

h2 = {a: "b",c: "d"}
p h2                   #=> {:a=>"b",:c=>"d"}

哈希的键可以使用各种对象,不过一般建议使用下面的对象作为哈希的键。

  • 符号(Symbol)
  • 字符串(String)
  • 数值(Numeric)
  • 日期(Date)

集合(Set)

集合和数组的区别是集合没有顺序的概念,因此[“a”,”b”,”c”]、[“a”,”c”,”b”]、[“b”,”a”,”c”]是同一个集合。数组的索引功能和散列的键值实际上是在集合基础上封装的一个功能而已。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/ruby/rubylang/1587.html

(1)
上一篇 2020年7月5日 04:00
下一篇 2020年7月7日 04:30

相关推荐

  • 1.8Ruby语言的方法(Method)

    1.方法的定义 方法遵循标识符的命名规则,全小写,多单词加下划线。 2.方法分类 2.1类方法 接收者不是对象而是类本身的方法。 2.2实例方法 以对象为接收者的方法。 上面的对象被称为接收者(receiver)。调用方法被称为“向对象发送消息(message)”,调用的结果是“对象接收(receive)了消息”。也就…

    Ruby语言教程 2020年7月8日
    05270
  • 2.3Ruby语言的抽象(Abstract)类

    我们可以定义一个抽象类,在抽象类内部定义一些抽象方法,这些方法留待子类进行实现。抽象的反面是 具体(concrete) ,如果一个继承自抽象类的类实现了祖先类中的所有的抽象方法,它就是具体类。

    Ruby语言教程 2020年8月3日
    01500
  • 1.11Ruby语言的两种闭包(Closure):Proc和Lambda

    形成闭包的两个特征: 块需要调用外围方法的参数或局部变量 外围方法有了返回以后,外围方法的参数或局部变量没有立即被销毁,依然存在于内存中,直至块执行完毕 首先回顾一下:代码块可以使用在其外定义的方法参数和方法局部变量。比如 一旦multiply方法有了返回以后,n方法参数将会被销毁,所以,此时还没有形成闭包。那如何形成…

    Ruby语言教程 2020年7月11日
    01890

发表评论

登录后才能评论