zoukankan      html  css  js  c++  java
  • Perl语言入门--5--散列、hash

                                        hash

    一、关联数组的形式

      %h=('a',1,'b',2);         a是key 1是value    b是key  2是value

        以%开头,()为空散列

      %h=('a'=>1,'b'=>2);    更明显一些 用这个还可以省略引号  但默认全部都是字符串  当有数字的时候就不是你的本意了

      元素形式:$h{'a'}       #注意用$

      元素为简单变量,用$。 %h{2.5}  %{-1}  ${$ee} 都是可以的 小数  负数  简单变量都可以是key

    二、 关联数组的赋值

      1、标准:  %a=('a',1,'b',2);

      2、数组与散列间赋值:%h=@a   散列也是数组 只是没有顺序

      3、@a=%h  数组元素的顺序随机

      4、($a,%h)=@array   #不太会用  先把数组的第一个值放进简单变量$a中 再把剩下的放进散列%h中  ,所以@array的个数必须是奇数

      5、%h=(%first,%second)  #浪费内存

      6、%h1=(%h2,'k','v')       #增加一组键值,必须成对出现

      7、函数的返回,比如split()的返回结果,也可以赋值给散列:

              %h=split(/,/,'a,b,c,d')

      8、片段:@key=('a','b','c')

            @hash{@keys}=@hash{reverse(@keys)}

            #注意@不能改为$,因$hash{}中key要求是简单变量,所以括号里面是一个数

                     而现在我想圈出一个数组,所以前面要变为@,括号里面也是@

                     都应该前后对应

                     如果你输入 $hash{@keys} 因为$hash大括号中的key要求是简单变量   这等同于 $hash{@keys的长度} 也就是@hash{3}

    三、 元素赋值与操作

      1、增加: $h{'a'}  =  1   不存在则创建,hash不存在也创建

      2、删除:delete $h{'a'}

      3、不要用push pop shift splice 等与顺序有关的函数,否则结果不可知

      4、显示:不能  print "%hash";   这样输出的只是字符串:%hash

            如用  print %hash  则显示无空格

             用遍历的方法来逐一显示

      5、$a=%hash  $a被赋值为x    x是已有的元素数/分配的内存数   没什么卵用

    四、关联数组操作函数

      key(%h) 或 key %h                  #返回键列表       

      value(%h) 或 value %h     #返回值列表       

      

      each(%h)循环:  ($key,$value)=each(%hash)

          循环中不要增加或删除元素,因为散列是无序的。循环的最后返回undef

      exist:查看关键字是否存在

          exist $h{'key'}

      undef(%h) : 删除散列 相当于%=()

      delete

  • 相关阅读:
    DotNetNuke 5 C#版本解读之1--架构介绍
    关于加入外包公司
    《深入浅出WPF》视频列表
    倒序输出字符串
    C#基础—— check、lock、using语句归纳
    Asp.net页面之间传递参数的几种方法
    sual C#中编写多线程程序之起步
    Head.First.ObjectOriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(一)
    索引分类
    表单提交中Get和Post方式的区别
  • 原文地址:https://www.cnblogs.com/modaidai/p/7373081.html
Copyright © 2011-2022 走看看