zoukankan      html  css  js  c++  java
  • Ruby Hash

      #hash
      new_hash1={}
      new_hash1[:key_a]='contents1'
      new_hash1[:key_b]='contents2'
      puts new_hash1[:key_a]
      puts new_hash1
      new_hash2={:key_a=>'contents1',:key_b=>'contents2'}
      puts new_hash2[:key_b]
     
      my_hash={}
    #my_hash[:key_a]=123456
    my_hash["key_a"]=123456
    #puts my_hash[:key_a]
    puts my_hash["key_a"]
    
    person={"name"=>"lxee","age"=>25,"sex"=>"男"}    #创建Hash对象
    puts person.size.to_s                            #输出Hash对象元素个数
    p person.keys()                                #输出所有key
    p person.values()                            #输出所有value
    
    person=Hash.new                            #创建Hash类实例
    puts person.size.to_s
    person["name"] = "zhht"
    person["age"]=23
    person["sex"]="男"
    puts person.size.to_s
    
    person={:name=>"lxee",:age=>25,:sex=>"男"}
    p person.keys
    p person.values
    puts person.include?(:sex)                        #判断是否包含key为:sex的元素
    puts person.include?("sex")                        #判断是否包含key为”sex"的元素
    person.delete(:sex)                            #删除key为:sex的元素
    puts person.has_key?(:sex)                        #判断是否包含key为:sex的元素
    puts person.length.to_s                        #输出Hash对象长度
    
    person={"name"=>"lxee","age"=>25,"sex"=>"男"}    #创建Hash对象
    person.each do |key,value|                        #each迭代器迭代输出Hash对象里全部元素
        puts key.to_s+" : "+value.to_s
    end
    person.each_pair do |key,value|                    #each_pair迭代器迭代输出Hash对象里所有key-value对
        puts key.to_s+" : "+value.to_s
    end
    person.each_key do |key|                        #each_key迭代器迭代输出Hash对象里所有key
        puts key.to_s
    end
    person.each_value do |value|                    #each_value迭代器迭代输出Hash对象里所有value
        puts value.to_s
    end
    
    h = Hash.[](:a,'a',:b,'b')
    p h
    h = Hash.[](:a=>'a',:b=>'b')
    p h
    h = Hash[:a,'a',:b,'b']
    p h
    h = Hash[:a=>'a',:b=>'b']
    p h
    h={:a,'a',:b,'b'}
    p h
    h={:a=>'a',:b=>'b'}
    p h
    h = Hash.new
    h[:a]='a'
    h[:b]='b'
    p h
    
    h1=Hash['a'=>1,'b'=>2]
    puts h1['a']
    
    h1.each do |key,value|
      puts "#{key} => #{value}"
    end
    
    h1.each_key do |key|
      puts key
      puts h1[key]
    end
    
    p h1.merge({:c=>3,:d=>4})    #添加hash键值对
    p h1.has_key?('a')
    p h1.has_key?(:c)
    
    h={:a=>1,:b=>2}
    h.delete(:a)                #删除键为:a的键值对
    p h
    p h.delete_if{|key,value| key==:b}
    
    h={:a=>1,:b=>2}
    p h.invert                  #键值对的键和值互换
    
    h.replace("c"=>3,"d"=>4)    #将Hash替换成括号中的Hash
    p h
    p h.to_a
    p h.to_s
    
    h={:a=>1,:b=>2}
    p h.keys
    p h.values
  • 相关阅读:
    『Argparse』命令行解析
    『MXNet』专题汇总
    用.NET开发通用Windows App
    ASP.NET 5探险(6):升级ASP.NET 5到beta6
    使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速开发部署微信后台
    Visual Studio 2015将在7月20号RTM
    VS2015上又一必备免费插件:Refactoring Essentials
    ASP.NET 5探险(5):利用AzureAD实现单点登录
    Visual Studio Code升级到0.5,提供对ES6的更好支持
    ASP.NET 5探险(4):如何把ASP.NET 5从beta4升级到beta5
  • 原文地址:https://www.cnblogs.com/mingforyou/p/2635771.html
Copyright © 2011-2022 走看看