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

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

相关推荐

  • 1.3Ruby语言的非操作符(Nonoperator)和操作符(Operator)

    非操作符 Ruby语言包括11个非操作符:圆括号(( ))、方括号([ ])、花括号( { })、圆点(.)、逗号(,)、分号(;)、冒号(:)、双冒号(::)、箭头(=>)、星号(*)、与(&)、小于(<)。 操作符 操作符,又称为运算符。有一个操作数的操作符称为一元操作符,有二个操作数的操作符称…

    Ruby语言教程 2020年7月3日
    01.4K0
  • 1.10Ruby语言的迭代器(Iterator)

    迭代器是一种特殊的带块的方法。 迭代器(iterator)是Ruby最为重要的特性之一,又称为 迭代器方法,虽然while、until和for循环是Ruby语言的核心部分之一,但是通常情况下我们更倾向于使用 迭代器 来编写循环。 从迭代器的英文拼写可以知道,迭代器表示的是循环(iterate)的容器(-or),所以迭代…

    Ruby语言教程 2020年7月10日
    01.0K0
  • 2.2Ruby语言的类(Class)、继承(Inheritance)、对象(Object)

    类声明 类 总是以关键字 class 开始,后跟类的名称。 继承 Ruby语言支持单继承,就是说1个子类只可以继承1个父类,可以用mix-in的方式引入模块从而支持“多继承”的效果。 Class是Module的子类,Module是Object的子类,Object是BaseObject的子类,Base…

    Ruby语言教程 2020年8月2日
    06740

发表回复

登录后才能评论