"value" 这样的键值对集合。哈希类似于一个数组,只不过它的索引不局...">
美文网首页
Ruby 哈希(Hash)

Ruby 哈希(Hash)

作者: Colleen_oh | 来源:发表于2019-11-12 17:42 被阅读0次

    哈希(Hash)是类似 "key" => "value" 这样的键值对集合。哈希类似于一个数组,只不过它的索引不局限于使用数字。

    Hash 的索引(或者叫"键")几乎可以是任何对象。

    Hash 虽然和数组类似,但却有一个很重要的区别:Hash 的元素没有特定的顺序。 如果顺序很重要的话就要使用数组了。

    创建哈希

    与数组一样,有各种不同的方式来创建哈希。您可以通过 new 类方法创建一个空的哈希:

    months = Hash.new
    

    您也可以使用 new 创建带有默认值的哈希,不带默认值的哈希是 nil。
    当您访问带有默认值的哈希中的任意键时,如果键或值不存在,访问哈希将返回默认值:
    让我们来看个例子:

    #!/usr/bin/ruby
     
    months = Hash.new( "month" )
     
    puts "#{months[0]}"
    puts "#{months[72]}"
    

    结果如下:

    month
    month
    

    让我们来看看第二个例子:

    #!/usr/bin/ruby
     
    H = Hash["a" => 100, "b" => 200]
     
    puts "#{H['a']}"
    puts "#{H['b']}"
    

    结果如下:

    100
    200
    

    您可以使用任何的 Ruby 对象作为键或值,甚至可以使用数组,如下实例所示:

    [1,"jan"] => "January"
    

    哈希内置方法

    如果需要调用 Hash 方法,需要先实例化一个 Hash 对象。下面是创建 Hash 对象实例的方式:

    Hash[[key =>|, value]* ] or
     
    Hash.new [or] Hash.new(obj) [or]
     
    Hash.new { |hash, key| block }
    

    这将返回一个使用给定对象进行填充的新的哈希。现在,使用创建的对象,我们可以调用任意可用的方法。例如:

    #!/usr/bin/ruby
     
    $, = ", "
    months = Hash.new( "month" )
     
    months = {"1" => "January", "2" => "February"}
     
    keys = months.keys
     
    puts "#{keys}"
    

    以上实例运行输出结果为:

    ["1", "2"]
    

    参考:https://www.runoob.com/ruby/ruby-hash.html

    相关文章

      网友评论

          本文标题:Ruby 哈希(Hash)

          本文链接:https://www.haomeiwen.com/subject/izpqictx.html