Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложные структуры данных 
:(
    Опции темы
ky0x5a
Дата 17.10.2012, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 17.5.2011

Репутация: нет
Всего: нет



Доброе время суток, подскажите, возможно ли строить в руби сложные структуры данных подобные таким как в Perl-e, например:

Код

#!/usr/bin/perl
use Data::Dumper;

my %hash = (
  k1 => sub{ return 1 },                       # ананомная ф-ция
  k2 => [1,2,3,4,5],                           # массив
  k3 => [1,2, \%other_hash],                  # массив, послед элемент ссылка на хеш
  k4 => [1,2,3, [1,2,3], [3,4,\@array, \%h]], # массив-массивов, где есть ссылки на др массив и хеш
  k5 => { # хеш анонимных функций
    f1 => sub { return 1 },
    f1 => sub { return 2 }
  }
);

__END__
# Дамп структуры переменной %hash

$VAR1 = 'k5';
$VAR2 = {
          'f1' => sub { "DUMMY" }
        };
$VAR3 = 'k2';
$VAR4 = [
          1,
          2,
          3,
          4,
          5
        ];
$VAR5 = 'k1';
$VAR6 = sub { "DUMMY" };
$VAR7 = 'k3';
$VAR8 = [
          1,
          2,
          {}
        ];
$VAR9 = 'k4';
$VAR10 = [
           1,
           2,
           3,
           [
             1,
             2,
             3
           ],
           [
             3,
             4,
             [],
             {}
           ]
         ];


Я пологаю для каждого ключа нужно будет создавать объект, подобно [] или {}, может можно как то вот так по быстрому и красивому варианту?
PM MAIL   Вверх
source777
Дата 20.10.2012, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 6
Всего: 56



А в чём конкретно сложность?

Код

hash = {'k1' => lambda{ 1 }, 'k2' => [1, 2, 3, 4, 5], 'k3' => [1, 2, other_hash]} # и т.д.



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1073 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.