Perl 로 어레이에서는 groupx 크기

내가 발견한 여러 가지 방법을 찾을 수 있을 것 같아 크기를 어레이에서는. 이러한 세 가지 방법이 차이가 뭘까?

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
질문에 대한 의견 (5)
해결책

첫 번째와 세 번째 방법 같습니다. 그들은 충족되었으며 평가하십시오 어레이입니다 스칼라 컨텍스트입니다. 이 기준이 될 수 있을 수 있는 방법은 꼭 이래야겠어요 고려해보십시오 array& # 39 의 크기.

실제로 두 번째 방법은 없는 (보통) 의 마지막 색인에서 되돌려줍니다 어레이이며 동일한 배열 크기.

해설 (8)

첫째, 두 번째는 다른 두 개의 동등한 없습니다. '$ # 어레이입니다' 의 마지막 색인에서 되돌려줍니다 어레이이며 원하는거요 보다 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.

해설 (13)

이를 통해 이 크기를 가져옵니다 강요하는 어레이입니다 붙여넣습니다 스칼라 컨텍스트로 검사됩니다 그 크기:

print scalar @arr;

이는 또 다른 방법은 강요하는 어레이입니다 붙여넣습니다 it& # 39 의 스칼라 컨텍스트로, 이후 대입된 기술입니까 스칼라 변수:

my $arrSize = @arr;

이 마지막 요소에 어레이입니다 it& 색인입니다 가져옵니다 # 39 의 크기 때문에 사실상 마이너스 1 사용한다고 가정할 때 indexe 0 에 시작, 이는 일반적으로 Perl 로 조정성 언로드하기 있지만 안 좋은 생각):

print $#arr;

39 마지막 한 isn&, 정말 좋은 배열 크기 얻기 위해 사용할 수 없다. 마지막 요소에 어레이입니다 내려받습니다 싶은 경우 도움이 될 것이라고 말했다.

my $lastElement = $arr[$#arr];

또한, 여기서 알 수 있듯이, 이 t # 39 의 Stack&amp chunghwa isn&, 대부분의 구문을 기준으로 올바르게 사용할 수 있을 만큼, 오버플로입니다 처리됩니까 형광펜.

해설 (2)

두 번째 방법은 사용할 수 있는 추가 1:

print $#arr + 1; # Second way to print array size
해설 (1)

만약 우리가 모든 것을 동일한 결과를 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;
해설 (1)

예:

my @a = (undef, undef);
my $size = @a;

warn "Size: " . $#a;   # Size: 1. It's not the size
warn "Size: " . $size; # Size: 2
해설 (0)

이 ["Perl 가변으로 유형은상위" 섹션을] [4] 의 펄리나로 문서용으로 map_layer

&gt. 특수 변수 '를 소개합니다' $ # 어레이입니다 색인입니다 마지막 요소를 배열.

&gt. 인쇄하십시오 혼합됨 $ ($ # 혼합됨]; # 마지막 요소, 인쇄 1.23

&gt. 나는 '$ # 어레이입니다 + 1' 을 말할 수 있습니다 사용할 수 있는 몇 가지 항목을 어레이입니다. 아 됐어 스칼라 값을 사용하여 @array '펄' 로 변신할 수 있는 찾을 수 있을 것으로 보고 있다. ("in 스칼라 컨텍스트로") 의 요소 수를 어레이입니다 부여하느뇨 있습니다.

&gt. if (@animals &lt. 5) {. }

또한 이 닫히지만 이 펄다타 문서용으로 의 ["스칼라 값" 섹션을] [2].

&gt. 스칼라 컨텍스트로, it 의 경우 어레이에서는 평가하십시오 되돌려줍니다 길이는 어레이입니다. (참고로 이 그렇지 않은 목록, 어떤 반품하십시오 마지막 값 같은 캜 쉼표 연산자, 않으며, 그들은 다시 느낄 수 있는 기능을 내장한 있는모든 반품하십시오.) 다음 사실이 항상:

&gt. 스칼라 (@whatever) = $ # 있는모든 + 1.

&gt. 를 사용할 수 있는 변환 등 일부 프로그래머가 명시성 남겨두십시오 의심의 여지가 없다.

&gt. = $ element_count 스칼라 (@whatever);

이에 앞서 같은 섹션을 어떻게 문서를 얻을 수 있는 마지막 요소점 색인입니다 어레이입니다.

&gt. 디스테이징하는 어레이에서는 는 스칼라 값. '평가' 에서 $ # @days 디스테이징하는 어레이입니다 알 수 있습니다 '일' 같이 'csh'. 하지만 여긴 길이는 스토리지였습니다. 이것이 바로 아래 첨자 마지막 요소, 즉 다른 값을 있기 때문에 일반적으로 한 0th 요소.

[2]: http://perldoc.perl.org/perldata.html # 스칼라 값을

[4]: http://perldoc.perl.org/perlintro.html # 펄은 변수 유형

해설 (0)

1, [펄다타] 에서 펄독 안전하다고 하는 쿼트에:

&gt. 다음 사실이 항상: &gt. &gt. 스칼라 (@whatever) = $ # 있는모든 + 1.

Long as you $ # # 39, t don& 너무 크기 또는 dell. whatever++ 및 신기하게도 증가되지는 어레이입니다.

&gt. 이 어레이에는 지수가 0 로 시작합니다.

&gt. 어레이에서는 아무것도아니야 할당하여 nulll 목록 () 자를 수 있습니다 down to it. 다음 동일합니다. &gt. &gt. @whatever = (); &gt. $ # 있는모든 = - 1.

어떤 이는 감지할 수 있는 방법을 찾고 있었어요 나를 누구이뇨 어레이입니다 비워집니다. 내가 찾은 경우 $ # 빈 = - 1.

해설 (0)

여러 가지 방법으로 크기를 인쇄하려면 어레이입니다. 다음은 모든 의미. = (3.4), '는' 내 @arr lionbridge 어레이입니다 말할 수 있습니다.

방법 1. 스칼라

이것이 옳은 방법은 크기를 배열입니다.

print scalar @arr;  # prints size, here 2

방법 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 개를 기록했다.

방법 3.

그 때 사용되는 스칼라, 배열 크기 어레이입니다 되돌려줍니다 컨텍스트로

my $size = @arr;
print $size;   # prints size, here 2

실제로 방법 3 및 방법 1 같습니다.

해설 (0)

Int (@array) '로' 어쩌고 때문에 쓰리트 인수는 불가능하다.

해설 (0)

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
해설 (0)