perl6.suОсвоим perl6 к 2015 году!

пара объектов


       А что делает for %hash ?
    
#!/usr/bin/perl6
my %hash=<perdo гублю amo люблю audio слушаю>;
for %hash {.say}
"perdo" => "гублю"
"amo" => "люблю"
"audio" => "слушаю"

       Не очень понятно.
    
#!/usr/bin/perl6
my %hash=<perdo гублю amo люблю audio слушаю>;
for %hash {.key.say}
'---------'.say;
for %hash {.value.say}
perdo
amo
audio
---------
гублю
люблю
слушаю

       Sic. Следственный эксперимент показал, что for %hash перебирает элементы хэша, возвращая пары "ключ - значение". Эту пару можно распечатать. А можно отдельно из пары извлечь объект-ключ и объект-значение. Интересно, а что можно ещё делать с парами как таковыми?
# mutatio postrema: 8 Sep 2010


       Предположим, что на каком-то этапе нам захотелось организовать несколько переменных в одну кучу (в один хэш), например, для того, чтобы сохранить далее структуру данных. Из переменной $age мы формируем запись в хэше age=>18 etc.
    
#!/usr/bin/perl6
my ($age,$name,$country)=(18,'Bob','USA');
my @toys=<doll railroad sims3>;
my %parents=<mother Lisa father John>;
# теперь всё это добро надо записать в хэш
my %hash=:$age, :$name, :$country, :@toys, :%parents;
# что же у нас получилось?
for %hash.keys {
	"$_ = %hash{$_}".say;
	'-------'.say;
	}
%hash{'parents'}{'mother'}.say; # убеждаемся, что хэш
age = 18
-------
name = Bob
-------
country = USA
-------
toys = doll railroad sims3
-------
parents = mother	Lisa father	John
-------
Lisa

       Запись ':переменная' превращает переменную в пару 'переменная => значение'
       :$var это var => $var
       :@var это var => @var
       :%var это var => %var
# mutatio postrema: 22 Sep 2010

   :, хэши, элемент хэша, пара объектов, for, key, value      charta situs       nota LI, nota LXXX   

    RSS     stdin@perl6.su    © Alexius Karmanov, 2010-2011