Тут можно читать онлайн книгу Фултон Хэл - Программирование на языке Ruby - бесплатно полную версию (целиком). Жанр книги: Программирование. Вы можете прочесть полную версию (весь текст) онлайн без регистрации и смс на сайте Lib-King.Ru (Либ-Кинг) или прочитать краткое содержание, аннотацию (предисловие), описание и ознакомиться с отзывами (комментариями) о произведении.
Программирование на языке Ruby - описание и краткое содержание, автор Фултон Хэл, читать бесплатно онлайн на сайте электронной библиотеки Lib-King.Ru.
Ruby — относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов. Книга является полноценным руководством по Ruby — ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии. Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby.
Программирование на языке Ruby - читать книгу онлайн бесплатно, автор Фултон Хэл
Метод
to_ftempПредложение
caseСFКстати, предложение
caseВ самом вычислении нет ничего интересного. Но обратите внимание, что переменные с и
fcasecaseelifМы воспользовались этим фактом, чтобы понять, какая ветвь исполнялась, и в зависимости от этого вывести то или другое сообщение. Сравнение
fnilcaseВнимательный читатель заметит, что мы пользовались только «локальными» переменными. Это может показаться странным, так как, на первый взгляд, их областью видимости является вся программа. На самом деле они локальны относительно верхнего уровня программы. Глобальными они кажутся лишь потому, что в этой простой программе нет контекстов более низкого уровня. Но если бы мы объявили какие-нибудь классы или методы, то в них переменные верхнего уровня были бы не видны.
1.2.6. Циклы и ветвление
Потратим немного времени на изучение управляющих конструкций. Мы уже видели простое предложение
ififunlesselseifunlessТаблица 1.1. Условные предложения
Формы с if | Формы с unless |
|---|---|
if x < 5 then statement1 end | unless x >= 5 then statement1 end |
if x < 5 then statement1 else statement2 end | unless x < 5 then statement2 else statement1 end |
statement1 if y == 3 | statement1 unless y != 3 |
x = if a>0 then b else c end | x = unless a<=0 then с else b end |
Здесь формы с ключевыми словами
ifunlessthenelseПредложение
casecase===case "Это строка символов." when "одно значение" puts "Ветвь 1" when "другое значение" puts "Ветвь 2" when /симв/ puts "Ветвь 3" else puts "Ветвь 4"endЭтот код напечатает
Ветвь 3"одно значение""другое значение"printelseЕсли проверяемое выражение — целое число, то его можно сравнивать с целочисленным диапазоном (например,
3..8В Ruby имеется богатый набор циклических конструкций. К примеру,
whileuntilifunlessKernelloopВ примерах из таблицы 1.2 предполагается, что где-то определен такой массив
listlist = %w[alpha bravo charlie delta echo];В цикле этот массив обходится и печатается каждый его элемент.
Таблица 1.2. Циклы
| # Цикл 1 (while) | # Цикл 2 (until) |
|---|---|
i=0 while i < list.size do print "#{list[i]} " i += 1 end | i=0 until i == list.size do print "#{list[i]} " i += 1 end |
| # Цикл 3 (for) | # Цикл 4 (итератор 'each') |
for x in list do print "#{x} " end | list.each do |x| print "#{x} " end |
| # Цикл 5 (метод 'loop') | # Цикл 6 (метод 'loop') |
i = 0 n=list.size-1 loop do print "#{list[i]} " i += 1 break if i > n end | i=0 n=list.size-1 loop do print "#{list[i]} " i += 1 break unless i <= n end |
| # Цикл 7 (итератор 'times') | # Цикл 8 (итератор 'upto') |
n=list.size n.times do |i| print "#{list[i]} " end | n=list.size-1 0.upto(n) do |i| print "#{list[i]} " end |
| # Цикл 9 (for) | # Цикл 10 ('each_index') |
n=list.size-1 for i in 0..n do print "#{list[i]} " end | list.each_index do |x| print "#{list[x]} " end |