Форум программистов, компьютерный форум, киберфорум
Ruby
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 4

Хэш: присвоить ключу несколько значений

23.10.2012, 00:20. Показов 3605. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Удобная шутка хэши, но хочется, чтобы в один ключ записывать два и более значения, ну и соответственно доставать из хэша потом два же и более. Что-то типа

Ruby
1
2
3
4
5
6
ar['key1'].X=1
ar['key1'].Y=3
 
...
 
print ar['key1'].X+ar['key1'].Y

Такое есть? Как это правильно пишется на Ruby?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.10.2012, 00:20
Ответы с готовыми решениями:

Map несколько значений по одному ключу
Дайте пример, пожалуйста, где в мапе по одному ключу можно вывести все значения.

Присвоить несколько значений одному полю
Подскажите плиз, вот у меня есть БД, где есть сотрудники, и им присваиваеи имена, фамилии, должности, и телефоны. Так вот как сделать, что...

Как присвоить переменной несколько значений?
Подскажите как в c#присвоить переменной несколько значений. Например a = 1, 2, 3. И как все это использовать с оператором if. Например if...

5
 Аватар для ProFTP
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 70
23.10.2012, 05:41
легче всего хэш-хэшей или хэш ссылок на метожы


Ruby
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/ruby
 
 
#Hash{"a" => 100, "b" => 200}
 
h = { "a" => {"a1" => 2, "a2" => 3}, "b" => 200 }
 
 puts h["a"]["a1"] + h["a"]["a2"]
 
# values_at
#puts h["a"].values_at("a1", "a2")

может быть можно сделать структуру которая будет ссылаться сама на себя...
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
23.10.2012, 07:58
Значением хэша м.б. другой хэш или массив.
0
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 4
23.10.2012, 09:16  [ТС]
[QUOTE=ProFTP;3596754]

Ruby
1
2
3
#!/usr/bin/ruby
 
h = { "a" => {"a1" => 2, "a2" => 3}, "b" => 200 }
Общий вид понятен, не понимаю как это генерить "в динамике". Самый стандартный случай - если ключа нет -> создать, если есть -> инкремент/присваивание.
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
23.10.2012, 18:09
Цитата Сообщение от oorca Посмотреть сообщение
Общий вид понятен, не понимаю как это генерить "в динамике"
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
 
class Hash
  def put! key, value
    if self.include? key and block_given?
      self[key] = yield self[key], value
    else
      self[key] = value
    end
  end
end
Методу передается ключ, значение и опциональный блок. Если ключ отсутствует, то в хеш добавляется пара ключ-значение. Если ключ присутствует и передан блок, то новое значение для этого ключа комбинируется из старого и значения, переданного методу, с помощью блока:

Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
irb(main):042:0> x = {}
{}
irb(main):043:0> x.put!(:a, 3)
3
irb(main):044:0> x.put!(:b, 5)
5
irb(main):045:0> x
{:a=>3, :b=>5}
irb(main):046:0> x.put!(:a, 7, &:+)
10
irb(main):047:0> x
{:a=>10, :b=>5}
irb(main):048:0> x.put!(:b, 0)
0
irb(main):049:0> x
{:a=>10, :b=>0}
irb(main):050:0>
0
61 / 58 / 12
Регистрация: 15.06.2012
Сообщений: 149
23.10.2012, 23:06
То что вы хотите называется Multimap (помню из c++)
Есть такой гем multimap
Подробности здесь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.10.2012, 23:06
Помогаю со студенческими работами здесь

Присвоить несколько значений одному option из select
Всем здрасти, в js не очень то я, поэтому нужна помощь. Есть два combobox: combobox1 и combobox2. В combobox1 есть множество option с...

Как присвоить переменной несколько значений и занести их в БД?
Добрый день, Форумчане Необходима ваша помощь или совет, есть некоторая форма, где пользователь выбирает checkом несколько параметров...

Как присвоить несколько значений рандомным объектам из списка?
сабж. есть список из дофига элементов. нужно присвоить трем из них по некоторому свойству Добавлено через 1 час 18 минут сюда же...

Как присвоить ключу массива значение из переменной?
Есть выборка из БД с занесением результатов в массив. $status=; $sql="SELECT id, status FROM " . TABLE . " WHERE...

Если значения переменных A и B не равны, то присвоить им максимальное из значений, иначе - присвоить 0
Даны две переменные целого типа Aи B если их значения не равны то присвоить каждой пепеменной максимальное из этих значений а если равны то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru