Rubyn: различия между версиями

6 байт добавлено ,  2 года назад
Нет описания правки
==== Известен только тип значений ====
 
Сведения о типе значений использовать следует так: создать хеш, в котором будет определен элемент по умолчанию. Элементом по умолчанию должен быть нулевой элемент соотвествующегосоответствующего типа, то есть для строки это будет пустая строка ( <code>""</code> ), для массива — пустой массив ( <code>[]</code> ), а для числа — нуль (<code>0</code> или <code>0.0</code>). Это делается, чтобы к пустому элементу можно было что-то добавить и при этом не получить ошибку.
<source lang=ruby>xew = Hash.new( "" )
xew[ "песенка про зайцев" ] += "В темносинем лесу"
{{info|Вторым параметром метода <code>.open</code> передается модификатор доступа, то есть кодовое слово по которому метод <code>.open</code> может предположить то, что вы будете делать с этим файлом. В нашем примере мы использовали модификатор <code>w</code> (от англ. write - писать), который говорит о том, что мы будем только писать в файл. Причем каждый раз файл будет перезаписываться. При помощи модификатора <code>a</code> (от англ. append - добавлять) мы указали, что мы будем добавлять данные в файл, а не перезаписывать, как в случае с <code>w</code>}}
 
После этого весь вывод на экран и сообщения об ошибках записываются в соотвествующиесоответствующие файлы. Для того, чтобы посмотреть пример в действии, предалагаю вам выполнить следующую программу:
<code>$stdout = File.open('выходные данные.txt','w')
$stderr = File.open('сообщения об ошибках.txt','a')
* Новости располагаются на первой странице сайта.
 
Итак, для чего нам нужен датчик? Допустим Вы админ сайта и постоянно добавляете новости. По окончании недели (месяца, года, столетия, ...) от Вас требуют отчет о проделанной работе. Вам приходится заходить на сайт и смотреть те новости, которые Вы добавили за последний период. Муторно и неэффективно. Намного приятнее постоянно вести записи о добавленных новостях (при помощи программы, конечно) и по завершении периода просто сделать соотвествующуюсоответствующую выборку.
 
Итак, немного об алгоритме программы... Обычно новостей на главной странице строго определенное количество. На нашем тестовом сайте из ровно пять. У нас есть файл в котором мы храним дату добавления новости и заголовок новости. Разделитель у нас может быть произвольным, но в качестве примера будет использован набор символов <code>' ^_^ '</code>. Вообще для данной задачи даже разделитель не очень-то и нужен (дата состоит из строго определенного количества символов и записывается в строго определенном формате)... но универсальность превыше всего!
Анонимный участник