내가 발견한 여러 가지 방법을 찾을 수 있을 것 같아 크기를 어레이에서는. 이러한 세 가지 방법이 차이가 뭘까?
my @arr = (2);
print scalar @arr; # First way to print array size
print $#arr; # Second way to print array size
my $arrSize = @arr;
print $arrSize; # Third way to print array size
첫째, 두 번째는 다른 두 개의 동등한 없습니다. '$ # 어레이입니다' 의 마지막 색인에서 되돌려줍니다 어레이이며 원하는거요 보다 1) 의 크기는 어레이입니다.
나머지 2 개는 거의 동일합니다. 두 가지 방법을 사용하여 간단히 스칼라 컨텍스트로 만들 수 있습니다. 이 질문에 대한 완료되니라 다운되어도 가독성을.
개인적으로 포지셔닝하십시오 다음과 같습니다.
say 0+@array; # Represent @array as a number
보다 내가 찾을 수 있습니다.
say scalar(@array); # Represent @array as a scalar
및
my $size = @array;
say $size;
후자의 매우 분명하게 보이는 것을 알 수 있지만, 내가 이렇게 혼자 떨어져 추가 줄 때 기타 코드 부분을 명료하게 걸립니다. # 39 의 it& 뭐라구오 @array 스칼라 컨텍스트로, 그리고 아마도 가르치는 데 유용한 '가' '두 번 이상 사용할 경우 $ size.
이를 통해 이 크기를 가져옵니다 강요하는 어레이입니다 붙여넣습니다 스칼라 컨텍스트로 검사됩니다 그 크기:
print scalar @arr;
이는 또 다른 방법은 강요하는 어레이입니다 붙여넣습니다 it& # 39 의 스칼라 컨텍스트로, 이후 대입된 기술입니까 스칼라 변수:
my $arrSize = @arr;
이 마지막 요소에 어레이입니다 it& 색인입니다 가져옵니다 # 39 의 크기 때문에 사실상 마이너스 1 사용한다고 가정할 때 indexe 0 에 시작, 이는 일반적으로 Perl 로 조정성 언로드하기 있지만 안 좋은 생각):
print $#arr;
my $lastElement = $arr[$#arr];
또한, 여기서 알 수 있듯이, 이 t # 39 의 Stack& chunghwa isn&, 대부분의 구문을 기준으로 올바르게 사용할 수 있을 만큼, 오버플로입니다 처리됩니까 형광펜.
만약 우리가 모든 것을 동일한 결과를 3 번째 수정하십시오 조금.
my @arr = (2, 4, 8, 10);
print "First result:\n";
print scalar @arr;
print "\n\nSecond result:\n";
print $#arr + 1; # Shift numeration with +1 as it shows last index that starts with 0.
print "\n\nThird result:\n";
my $arrSize = @arr;
print $arrSize;
이 ["Perl 가변으로 유형은상위" 섹션을] [4] 의 펄리나로 문서용으로 map_layer
>. 특수 변수 '를 소개합니다' $ # 어레이입니다 색인입니다 마지막 요소를 배열.
>. 인쇄하십시오 혼합됨 $ ($ # 혼합됨]; # 마지막 요소, 인쇄 1.23
>. 나는 '$ # 어레이입니다 + 1' 을 말할 수 있습니다 사용할 수 있는 몇 가지 항목을 어레이입니다. 아 됐어 스칼라 값을 사용하여 @array '펄' 로 변신할 수 있는 찾을 수 있을 것으로 보고 있다. ("in 스칼라 컨텍스트로") 의 요소 수를 어레이입니다 부여하느뇨 있습니다.
>. if (@animals <. 5) {. }
또한 이 닫히지만 이 펄다타 문서용으로 의 ["스칼라 값" 섹션을] [2].
>. 스칼라 컨텍스트로, it 의 경우 어레이에서는 평가하십시오 되돌려줍니다 길이는 어레이입니다. (참고로 이 그렇지 않은 목록, 어떤 반품하십시오 마지막 값 같은 캜 쉼표 연산자, 않으며, 그들은 다시 느낄 수 있는 기능을 내장한 있는모든 반품하십시오.) 다음 사실이 항상:
>. 스칼라 (@whatever) = $ # 있는모든 + 1.
>. 를 사용할 수 있는 변환 등 일부 프로그래머가 명시성 남겨두십시오 의심의 여지가 없다.
>. = $ element_count 스칼라 (@whatever);
이에 앞서 같은 섹션을 어떻게 문서를 얻을 수 있는 마지막 요소점 색인입니다 어레이입니다.
>. 디스테이징하는 어레이에서는 는 스칼라 값. '평가' 에서 $ # @days 디스테이징하는 어레이입니다 알 수 있습니다 '일' 같이 'csh'. 하지만 여긴 길이는 스토리지였습니다. 이것이 바로 아래 첨자 마지막 요소, 즉 다른 값을 있기 때문에 일반적으로 한 0th 요소.
[2]: http://perldoc.perl.org/perldata.html # 스칼라 값을
[4]: http://perldoc.perl.org/perlintro.html # 펄은 변수 유형
1, [펄다타] 에서 펄독 안전하다고 하는 쿼트에:
>. 다음 사실이 항상: >. >. 스칼라 (@whatever) = $ # 있는모든 + 1.
Long as you $ # # 39, t don& 너무 크기 또는 dell. whatever++ 및 신기하게도 증가되지는 어레이입니다.
>. 이 어레이에는 지수가 0 로 시작합니다.
및
>. 어레이에서는 아무것도아니야 할당하여 nulll 목록 () 자를 수 있습니다 down to it. 다음 동일합니다. >. >. @whatever = (); >. $ # 있는모든 = - 1.
어떤 이는 감지할 수 있는 방법을 찾고 있었어요 나를 누구이뇨 어레이입니다 비워집니다. 내가 찾은 경우 $ # 빈 = - 1.
여러 가지 방법으로 크기를 인쇄하려면 어레이입니다. 다음은 모든 의미. = (3.4), '는' 내 @arr lionbridge 어레이입니다 말할 수 있습니다.
이것이 옳은 방법은 크기를 배열입니다.
print scalar @arr; # prints size, here 2
'마지막' $ # 도착 보기입니다 색인입니다 어레이에서는. 만일 어레이입니다 그 크기는 10 의 마지막 색인에서 약간만이라도 9.
print $#arr; # prints 1, as last index is 1
print $#arr + 1; # Add 1 to last index to get array size
여기서 우리는 감안할 때 추가 1 로 어레이입니다 0-indexed . 그러나 그 후 이 논리를 페일오버됩니다 , 않을 경우 제로 기반.
perl -le 'local $[ = 4; my @arr=(3,4); print $#arr + 1;' # prints 6
예를 들어, 6 위) 가 없었기 때문에 초기 인덱스화할 설정되었습니다 4gbit/s. 이제 약간만이라도 인덱스화할 요소와 3 및 4, 5 ~ 6 개를 기록했다.
그 때 사용되는 스칼라, 배열 크기 어레이입니다 되돌려줍니다 컨텍스트로
my $size = @arr;
print $size; # prints size, here 2
실제로 방법 3 및 방법 1 같습니다.
Com/go/downloads_kr 어레이에서는 크기를 사용하여 '스칼라' 키워드:
print scalar @array;
알 수 없다 '의 마지막 색인에서 어레이에서는 $ #' (펄 (perl) 의 기본 variable). 이를 통해 마지막 색인입니다 어레이에서는. 표시됨과 어레이입니다 0mb 시작, we get $ # 크기를 어레이입니다 추가하여 '':
print "$#array+1";
예:
my @a = qw(1 3 5);
print scalar @a, "\n";
print $#a+1, "\n";
출력:
3
3