Александр Неткачев - Быстрый курс Ruby
Название: | Быстрый курс Ruby | |
Автор: | Александр Неткачев | |
Жанр: | Самиздат, сетевая литература, Учебники и самоучители по компьютеру, Литература ХXI века (эпоха Глобализации экономики), Linux, Windows, Программирование: прочее, Ruby | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | - | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Быстрый курс Ruby"
Курс ориентирован на читателей, которые уже знают какой-либо язык программирования и понимают магию, с помощью которой из набора разрозненных операторов получается нечто действительно полезное. Поэтому курс сокращен до предела и организован в виде блоков "задача — решение". Блоки сгруппированы в тематические разделы.
Читаем онлайн "Быстрый курс Ruby". [Страница - 3]
Массивы
Нумерация массивов начинается с нулевого элемента. Отрицательный индекс — обратная нумерация. В отличие от PHP, массив — это последовательность из N элементов. Поэтому если a = [1, 2] и задается значение a[4] = 10, то в результате получаем массив [1, 2, nil, nil, 10].
Создать массив
a = []a = Array.new
a = ["asdf", "g", "h", "jkl;"]
Новый массив из фразы
a = %w{Ruby is a best language}a = "Ruby is a best language".split(" ")
Выбрать часть массива
a = [1, 2, 3, 4, 5]a[2, 2] # [3, 4]
a[1..3] # [2, 3, 4]
a[1…3] # [2, 3]
Изменить массив
a = [1, 2, 3, 4, 5]a[1,2] = [] # a = [1, 4, 5]
a[0,1] = 3 # a = [3, 4, 5]
a[0,1] = [1, 2, 3] # a = [1, 2, 3, 4, 5]
Полезные методы
a.length # длина массиваa.shift # "вынуть" (вернуть и удалить) первый элемент
a.pop # "вынуть" последний элемент
Хеши (ассоциативные массивы)
Создать хеш
h = {'hash' => '{}', 'array' => '[]'}h['hash'] = "{'key' => 'value'}"
Найти элемент по условию
р.find { |item| item.name == 'hash' }
Регулярные выражения
Создать выражение
r = Regexp.new('/a(b)c/')r = /a(b)c/
r = %r{a(b)c}
Применить выражение в условии
str = "Ruby is OOP language"puts $1 if str =~ /(OOP)/
puts str unless str!~ /OOP/
Специальные переменные
$1..$9 — найденные группы$& — текст, найденный по шаблону
$` — текст до шаблона
$' — текст после шаблона
Использование объекта вместо специальных переменных
m = /(a)(b)(c)/.match('abcdefg')m[0] > $&
m[1] > $1
…
m.pre_match > $`
m.post_match > $'
Callbacks
yield
def doSomethingyield
end
doSomething { puts "It is a something:-)" }
def doSomethingWithParams
yield 1
end
doSomethingWithParams do
|i| puts "It is a something with #{i}:-)"
end
Определить, что методу передан callback
if block_given?yield
end
Блоки кода как объекты
def doSomething(&callback)callback.call
end
doSomething { print "This is a something" }
def doSomething(callback)
callback.call
end
doSomething proc { print "This is a something" }
Разименовать блок кода для yield-применения
p = proc {|i| print i}(1..10).each &p
Ввод/Вывод
puts — выводит строкуprint — выводит строку без \n в конце
printf — аналогичен C printf
gets — помещает результат ввода строки данных в переменную $_ и возвращает строку
Методы
Значение по умолчанию для параметра
def myMethod(value = "Default")
Все или часть параметров поместить в массив
def myMethod(*args)
Во время вызова метода использовать разбиение массива на параметры
myMethod(*[1, 2])
Вызов метода с использованием именованых параметров
myMethod('param2' => 1, 'param1' => 2)
Классы
конструкторdef initialize
Создание объекта
MyClass.new
Клонирование объекта
myClass.dup
"Заморозка" (нельзя изменять не "разморозив") объекта
myClass.freeze
dump объекта
myClass.inspect
Cтроковый идентификатор объекта
myClass.to_s
Вызов аналогичного метода parent класса
super
Задание readonly свойств/аттрибутов
attr_reader: documentUri
Задание writeonly свойств
def documentUri=(documentUri)@documentUri = documentUri
end
Задание static переменной класса
@@users
Задание static метода класса
class Pagedef Page.addHit
@@hit += 1
end
end
Модификаторы области видимости
[public|protected|private]def…
def…
или
private: myMethod1,myMethod2
Модификатор области видимости для унаследованного метода
private_class_method: new
Переопределение операций
class NodeListdef +(newNode)
#…
end
end
Исключения
begin#…
rescue ExceptionClass
#…
rescue ExceptionClass => e
#…
ensure
#…
end
аналогичен Java коду:
try {
//…
} catch (ExceptionClass) {
//…
} catch (ExceptionClass e) --">Книги схожие с «Быстрый курс Ruby» по жанру, серии, автору или названию:
Александр Тарасович Гребёнкин - Роковой подарок Жанр: Самиздат, сетевая литература Год издания: 2017 |