답변:
my %h = (1..5) Z=> (20..24);
say %h; # {1 => 20, 2 => 21, 3 => 22, 4 => 23, 5 => 24}
Z
메타 연산자는 이름의 일부로 연산자를 취하고,에 기본값 ,
따라서 기본적으로 목록 작성. Pair
생성자 (일명 fat-comma) 를 추가하면 의 목록을 작성하여에 Pair
피드 할 수 있습니다 Hash
.
다른 해결책은 다음과 flat
같은 결과 를 10으로 만드는 것 입니다 Z
.
my %h = flat (1..5) Z (20..24);
flat
이 작동합니다.
flat
레벨이 List
s 인 경우 다중 레벨 데이터 구조의 여러 레벨을 병합합니다 . 이미 비 도입했습니다하지만 List
에 데이터를 할당하는 등의, Array
사용하지 않고를 flat
하기 전에 이렇게 한 후 flat
더 이상 올바른 도구가 될 수 없습니다. 예를 들어을 사용하여 할당 my @a = 1..5 Z 20..25;
한 경우 flat
단독으로 작업을 수행하지 않습니다. 나는 이것을 이렇게 평평하게 할 것 my %h = @a[*;*];
입니다. 나는 다중 레벨 데이터를 평평하게 첨자를 사용하는 방법에 대한 좀 더 작성했습니다 여기에 .
((1, (1, 2, 3)), (2, (5, 6)), (17, (3, 4, 5, 92, 31))
(즉, 최종 결과는 값을 목록으로하는 해시입니다)?