Perl 해시 해시 용법 의 입문 강좌

4668 단어
1. Perl Hash 가 무엇 입 니까?
하 쉬 는 배열 과 유사 한 데이터 구조 로 값 을 저장 하거나 그 중에서 값 을 되 찾 을 수 있다.그러나 배열 과 달리 색인 은 숫자 가 아니 라 이름 이다.즉, 색인 (여기 서 우 리 는 키 라 고 부른다) 은 숫자 가 아니 라 임의의 유일한 문자열 이다.
key 는 임의의 문자열 일 수 있 습 니 다. 모든 문자열 을 key 로 사용 할 수 있 지만 유일한 문자열 입 니 다.또 다른 hash 를 생각 하 는 방법 은 데이터 (a barrel of data) 로 보고 모든 데이터 에 해당 하 는 태그 가 있다 는 것 이다.탭 을 통 해 이 탭 에 대응 하 는 요소 에 접근 할 수 있 습 니 다.그러나 그 중에서 '첫 번 째' 요소 의 개념 이 없다.배열 에서 배열 요 소 는 0, Perl 에서 배 운 해시 hash마 량 의 컴퓨터 기술 1, 2 부터 번 호 를 매 긴 다.그러나 hash 에 서 는 정확 한 순서 가 없 기 때문에 첫 번 째 요소 도 없습니다.키 / value 쌍 의 집합 일 뿐 입 니 다.
keys 와 values 는 모두 임의의 스칼라 이지 만 keys 는 보통 문자열 로 변환 합 니 다.따라서 표현 식 50 / 20 을 keys 로 사용 하면 보통 3 글자 의 문자열 인 '2.5' 로 변 환 됩 니 다.Perl 의 '불필요 한 제한 이 없다' 는 디자인 철학 때문에 hash 는 임의의 크기 일 수 있 습 니 다. 빈 hash (key / value 쌍 이 없다) 에서 메모리 가 허용 하 는 크기 까지.keys 는 유일한 것 이지 만 values 는 중복 할 수 있 습 니 다.hash 의 value 는 숫자, 문자열, undef 또는 이들 의 혼합 일 수 있 지만 key 는 유일한 것 입 니 다.
Perl Hash 를 왜 사용 합 니까?
hash 를 간단 한 데이터 베이스 로 볼 수 있 습 니 다. 그 중에서 모든 key 아래 에 데이터 가 있 을 수 있 습 니 다."조회 중복", "유일한", "교차 참조", "조회 표" 에 관 한 작업 이 라면 hash 는 이러한 응용 프로그램 에서 Perl 학습 의 해시 hash 를 도 울 수 있 습 니 다.마 량 의 컴퓨터 기술 은 너의 바쁘다.
2. Perl Hash 요소 의 액세스
hash 요 소 를 방문 하려 면 다음 문법 을 사용 할 수 있 습 니 다: $hash {$some key} 이것 은 배열 요 소 를 방문 하 는 방법 과 유사 합 니 다. 여기 아래 표 시 는 괄호 ({}) 가 아 닌 괄호 ([]) 를 사용 합 니 다.현재 key 의 표현 식 은 숫자 가 아 닌 문자열 입 니 다.hash 의 이름과 Perl 의 다른 식별 자의 이름 규칙 은 같 습 니 다 (알파벳, 숫자, 밑줄 로 구성 되 지만 숫자 로 시작 할 수 없습니다).존재 하지 않 는 hash 요소 에 접근 하면 undef 를 얻 을 수 있 습 니 다.
1. 전체적으로 펄 해시
전체 hash 를 참조 하려 면 백분율 (%) 을 접두사 로 사용 하 십시오.편 의 를 위해 hash 는 목록 으로 바 꾸 거나 반대로 바 꿀 수 있 습 니 다.
2. Perl Hash 할당
hash 사이 에 다음 문법 으로 복사 할 수 있 습 니 다:% newhash = %old_hash;hash 를 다른 형식 으로 바 꾸 는 것 이 더 흔 하 다.예 를 들 어, 우 리 는 hash 를 반전 시 킬 수 있 습 니 다:% inversehash = reverse %any_hash;
3. 큰 화살표 기호 (= >)
hash 에 값 을 부여 할 때 어떤 요소 가 keys 인지 뚜렷 하지 않 을 때 가 있 습 니 다. 그것 은 values 이기 때문에 큰 화살표 기호 (= >) 를 발 명 했 습 니 다.쉼표 가 필요 할 때 큰 화살표 기 호 를 사용 하여 교체 할 수 있다.예:
 
  
my %last_name = (  
"www" => 1,  
"eee" => 2,  
); 

3. 펄 해시 함수
일부 유용 한 함수 들 은 전체 hash 를 조작 할 수 있 습 니 다.
1. keys 와 values 함수
keys 함 수 는 이 hash 의 모든 keys 를 되 돌려 줍 니 다. values 함 수 는 모든 values 를 되 돌려 줍 니 다.hash 에 요소 가 없 으 면 이 함 수 는 빈 목록 으로 돌아 갑 니 다.
 
  
my %hash = ("a"=>1, "b"=>2, "c"=>3);  
print my @k = keys %hash;  
print my @v = values %hash; 

2. each 함수
hash 의 모든 요 소 를 교체 하려 면, 일반적인 방법 은 each 함 수 를 사용 하 는 것 입 니 다. key / value 에 대응 하 는 2 개의 요소 목록 을 되 돌려 줍 니 다.같은 hash 함 수 를 교체 할 때 모든 요소 가 접근 할 때 까지 다음 key / value 쌍 을 되 돌려 줍 니 다.더 많은 key / value 쌍 이 없 으 면 each 함 수 는 빈 테이블 로 돌아 갑 니 다.
 
  
my %hash = ("a"=>1, "b"=>2, "c"=>3);  
while(($key, $value) = each %hash)  
{  
print "$key => $value
";  


물론, each 가 돌아 오 는 key / vlue 는 순서 가 혼 란 스 럽 습 니 다. (키 와 values 함수 가 돌아 오 는 순서 가 같 습 니 다.)순서대로 배출 하려 면 정렬 할 수 있 습 니 다 (sort 사용).
 
  
my %hash = ("a"=>1, "b"=>2, "c"=>3, "d"=>4);  
foreach $key (sort keys %hash)  
{  
$value =$hash{$key};  
print "$key => $value
";  


4. Perl Hash 의 일반적인 용법
1. exists 함수
hash 에 키 가 존재 하 는 지 확인 하려 면 exists 함 수 를 사용 할 수 있 습 니 다. hash 에 이 키 가 존재 하면 true 로 돌아 갑 니 다. 대응 하 는 value 가 있 는 지 여부 와 무관 합 니 다.
 
  
my %hash = ("a"=>1, "b"=>2, "c"=>3, "d"=>4);  
if(exists $hash{'a'})  
{  
print "true";  


2. delete 함수
delete 함 수 는 주어진 key (대응 하 는 value 포함) 를 hash 에서 삭제 합 니 다.이 키 가 존재 하지 않 으 면 아무것도 하지 않 고 경고 나 오류 메시지 가 없 을 것 입 니 다.
 
  
my %hash = ("a"=>1, "b"=>2, "c"=>3, "d"=>4);  
delete $hash{'a'};  
foreach $key (sort keys %hash)  
{  
$value =$hash{$key};  
print "$key => $value
";  


3. Perl Hash 요소 의 삽입
따옴표 문자열 에 하나의 hash 요 소 를 사용 할 수 있 지만 전체 hash 의 삽입 은 지원 되 지 않 습 니 다.
 
  
my %hash = ("a"=>1, "b"=>2, "c"=>3, "d"=>4);  
foreach $key (sort keys %hash)  
{  
print "$key => $hash{$key}
";  
}  

좋은 웹페이지 즐겨찾기