| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Newbie 15.08.2009 12:23
Продолжая "серию тупых вопросов" в ходе погруженного изучения Парсера экспресс-методом. Из документации не очевилно, на форуме куча мимо темы - поэтому не нашел.# Вариант 1
$myhash[^hash::create[]]
^for[i](0;10){
^for[j](0;10){
$myhash.$i.$j[x=$i y=$j] # Выдаст ошибку о том, что ТАК нельзя
}
}
$myhash.3.10 # До этого дело не доходит # Варинат 2 - более извращенный
$ihash[^hash::create[]]
$jhash[^hash::create[]]
^for[i](0;10){
^for[j](0;10){
$jhash.$j[x=$i y=$j] # "Набиваем" одномерный хеш $jhash.0..10[]
}
$ihash.$i[$jhash] # "Набиваем" одномерный хеш $ihash.0..10[$jhash-ами]
}
$ihash.0.5 # Выдаст x=10 y=5
$ihash.3.3 # Выдаст x=10 y=3
$ihash.6.5 # Выдаст x=10 y=5
#
# Видимо это происходит потому, что $jhash в каждом цикле перетирается - и то что заносится в $ihash - это все ссылка на один и тот же hash
# отсюда видимо следует что и так - не прокатит - и нужно $ihash набивать $jhash-ем методами типа add или unionПолучить "эффект" ручного создания многомерного хеша ^process-ом тоже не выходит, то есть: