早教吧 育儿知识 作业答案 考试题库 百科 知识分享

判断某元素是否在数组中

题目详情
判断某元素是否在数组中
▼优质解答
答案和解析
判断两个数组所有元素是否相同
直接比较数组名字即可,不必逐个元素比较.my@a= (1..10) ;my@b= (1..10) ;if(@a==@b) {print"equal\n"; #equal}
但需要注意一点,如果是数组的引用,那么就不能直接比较了.必须先解引用再比较.my$aref1= [1..10] ;my$aref2= [1..10] ;if($aref1==$aref2) {print"equal\n"# not equal}
先解引用再比较my$aref1= [1..10] ;my$aref2= [1..10] ;if(@$aref1== @$aref2) {print"equal\n"; # equal}打印数组
最笨的方法,多半来自其他语言比较熟悉的coder们.其中$#numbers表示数组numbers的最后一个元素的下标.在这里时9,所有要使用<=,而不是<,否则会漏掉最后一个元素.my@numbers= (1..10);for(my$i=0;$i<= $#numbers; ++$i) {print$numbers[$i],"\n";}
其实普通数组直接打印即可,无需遍历.my@a= (1..10) ;print@a;
方法一
直接遍历数组,逐个元素判断.方法二是用grepmy@Colors= ('Red','Green','Yellow',);if(grep{$_eq'Red'}@Colors) {print"Exists!\n";}}方法三
如果是perl 5.10.0以上,可以使用智能匹配,如下.my@array= (1,2,3,4,5) ;my$var=2;if($var~~@array) {print"$var exists in (@array)\n";}定义空列表
定义空列表用(),而不是undef
下面代码输出1,这种写法表示列表的第一个元素是undef.严格的说并不是空列表.my@list=undef;push@list,1;push@list,2;print$list[1],"\n";#Output 1
下面代码输出2my@list= ();push@list,1;push@list,2;print$list[1],"\n";#Output 2
unless(xxx) 与 unless defined(xxx)
这两者是不一样的,前者表示xxx为假的时候执行代码,而后者表示xxx未定义时执行代码,也就是只有当xxx==undef时,后者才会执行,而前者以下几种情况都会执行的.xxx==undefxxx=0xxx='0'xxx=''xxx=""
将数组元素分组
看了判断某元素是否在数组中...的网友还看了以下: