Найти тему

Практика Ruby №11(хэш/hash/ассоциативный массив)

Здравствуйте!

По большей части создаю это для себя, но если кому-то пригодится попрактиковаться в Ruby с самого начала, то welcome =)

По мере своего продвижения обучения буду пополнять конспект новыми знаниями, поэтому не судите строго

По сути, это просто краткий конспект, в который я записываю все, что хочу запомнить или сложно запоминается, плюсом ко всему записывать и придумывать себе задания для практики.

Все материалы для конспекта взяты с rubyschool.us

Обменять значения 2х переменных без использования 3й:

a, b = b, a => работает с любым объектом
a = a + b
b = a - b
a = a - b => работает только при типе данных integer

.each_with_index метод передает 2 параметра

arr.each_with_index do |item, i|
puts "#{i+1} #{item}"
end

Хэш (Hash) в некоторых языках называют Dictionary(словарь)
Хэши -
вторая основная структура данных после массива
key value storage
ключ значение хранилище
Хэш - это просто структура данных, которая используется не только в Ruby, а во многих других языках программирования или базах данных NOSQL
В виде ключа обычно используют
символы, но ключом может быть любой объект.
В отличии от массива, каждое значение имеет свой ключ, а массив это просто набор значений(объектов)
Эта структура данных не предназначена для того чтобы хранить элементы в определенном порядке.
Ключ должен быть уникальным

Определение хэша/создание простого хэша:

hash = {}
hash = Hash.new
hash = {'Mike' => '33823', 'Jessie' => '31322'}
"=>" - hash rocket

Хэши очень часто используются в Ruby и Rails, как параметры чего-либо
Обращение к хэшу осуществляется по ключу, возвращается значение, которое соответствует данному ключу:

options = {:font_size => 10, :font_family => 'Arial, :arr => [1,2,5...]'}
x = options[:font_size]
puts "Selected font size: #{x}"
=> Selected font size: 10
для символов так же приемлемо такое написание:
options = { font_size: 10, font_family: "Arial" }

Добавление в хеш / присвоение значение ключу:

options [ 'Mike'] = 35

each do для хеша:

options.each do |key, value|
.... key value
end

Обращение к хешу:

options [:font_size]
или
options [key]

Практика:

1) Напишите простую программу, используя метод .each_with_index

2)Сделать записную книжку с номерами телефонов
Enter name(or Enter to exit)
Enter phone number
вывести на экран

3)Написать словарь, с несколькими вариантами перевода для каждого слова:
cat
dog
girl
Вывод:
Количество переводов слова: 2
Переводы:
кот
кошка