Saya memiliki daftar daftar dua elemen, seperti apa yang akan Anda dapatkan misalnya dengan (1..5) Z (20..24)
, yang ingin saya buat menjadi hash (dalam contoh ini, apa yang Anda dapatkan {1 => 20, 2 => 21, 3 => 22, 4 => 23, 5 =>24}
. Saya bisa melakukannya "dengan tangan", tetapi itu tidak terlalu elegan, dan saya yakin Raku memiliki cara idiomatis untuk melakukannya. Alternatif lain yang saya buat adalah:
my @a = (1..5) Z (20..24);
my %a;
for @a -> @x {
%a{@x[0]} = @x[1];
flat
harus bekerja.flat
akan meratakan beberapa level dari struktur data multi-level jika levelnyaList
s. Tetapi jika Anda sudah memperkenalkan non-List
s, mis. Menugaskan data keArray
tanpa menggunakanflat
sebelum melakukannya, makaflat
tidak akan lagi menjadi alat yang tepat. Misalnya, jika Anda menugaskannya menggunakanmy @a = 1..5 Z 20..25;
ituflat
sendiri tidak akan melakukan pekerjaan. Saya akan meratakannya seperti inimy %h = @a[*;*];
. Saya telah menulis sedikit lebih banyak tentang menggunakan subskrip untuk meratakan data multi-level di sini .((1, (1, 2, 3)), (2, (5, 6)), (17, (3, 4, 5, 92, 31))
(yaitu, hasil akhir akan menjadi hash dengan daftar sebagai nilai)?