Найти в Дзене

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

Оглавление

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

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

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

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

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

Немного сбавляю темп, тк темы сложны для понимания и, для усвоения,поступающей информации, требуется больше времени и практики.

Хэш (продолжение)

hh={}
hh.push (key, value)
hh.store (key, value)
hh.inspect - возвращает хэш в виде типа данных "строка"
__________________________________
hh.clear - очищает хэш
hh.delete key - удалить пару из хэша

Для бесконечных циклов, такая конструкция тоже работает в Ruby:

break if условие

Условия IF

выражение/оператор/операция if выражение на true/false
hh[key] = value if a + b > c

Для передачи значений функции обычно используется хэш options, в котором есть все необходимые данные

def add_person options
age = options[age]
end
options ={age: 65, name: 'Mike'}
или, чтобы не создавать еще 1 хэш, валидна такая запись
def add_person :age => age, :name => name

.merge - метод, возвращает новый хэш, в котором объединяются значения хэшей(при этом если ключ из первого хэша совпадает с ключом 2 хеша, то ключу будет присвоено значение из 2 хэша)

hh1={a:33, b:25,c:99}
hh2={d:25,e:98:c35}
hh1.merge(hh2)
=> {a:33, b:25,c:35,d:25,e:98}

Если использовать .merge!, то эта операция изменит первый хэш(т.е не создается еще 1 хэш)

Символ перенаправления ввода ">", ">>"
Выгрузить результаты в файл:

ruby app.rb > file.txt

В той же папке, где находится программа с расширением .rb, создастся file.txt, в котором будут результаты вывода программы
!!!При изменении вывода в программе, файл не будет спрашивать о замене, просто перезапишет новый вывод, не сохраняя старый

ruby app.rb >> file.txt

Тоже самое, только изменения дописываются в конец файла, сохраняя первоначальное значение вывода программы

HTML

<body> - тэг тело страницы
<br/> - тэг новой строки
<b> ...</b> - bolt, тэг "жирного" текста
<i> ... </i> - italic, тэг "курсива" текста
Heading - заголовок
<h1> ... </h1>
<h2> ... </h2>
<h3> ... </h3>
<h4> ... </h4>
<h5> ... </h5>

Для вывода в формате HTML

ruby app.rb > file.html

Пример как это выглядит в редакторе

Практика:

1)Написать "урезанную записную книжку" по примеру снизу, используя функции, при вводе пустой строки, заканчивает программу (Ответ)
hh={}
def add_person name, age
...
end
def show_hash
...
end
loop do
....
end

2)Добавить проверку уникальности имен в программу выше
PS: решение меньше, чем одна строка
(Ответ)

3)Переделать из программу из пункта 2, с использованием хэша, как параметра функции (Ответ)