Базовые элементы Ruby

Доброе пожаловать в базовые элементы Ruby Building! Вы уже узнали некоторые основные элементы Ruby в Основах веб-разработки (если нет, то вернитесь и сначала пройдите тот этап), к этому моменту уже следует знать про переменные, типы данных, строки и методы.
В этом уроке вы пойдете дальше и глубже чем раньше, так что не думайте, что удастся «проскочить». Первые два урока охватывают большую часть материала всего курса по Ruby, так что если вы готовы - вперед!

Пункты для размышления

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

Внимание: мы рекомендуем пробежать глазами по списку, сделать задание и потом проверить себя, сможете ли вы ответить на все эти вопросы.
  • Числа, операторы и выражения

    • Какая разница между Integer и Float?
    • Почему стоит быть осторожным при конвертировании Integer в Float и наоборот?
    • Какая разница между =, == и ===?
    • Как возводить в степень в Ruby?
    • Что такое range?
    • Как создать диапазон (range)?
    • Какая разница между (1..3) и (1…3)?
    • Какими тремя способами создать диапазон (range)?
  • Строки

    • Какая разница между двойными и одиночными кавычками?
    • Что такое интерполяция строки?
    • Что такое управляющие символы в Ruby?
    • Что такое разрыв строки?
    • Как сделать другие объекты строкой?
    • Как объединять строки?
    • Как получить доступ к отдельному символу в строке или к подстроке?
    • Как разделить строки на массивы?
    • Что общего между строками и массивами?
    • Как получить и «очистить» ввод строки от пользователя в командной строке?
    • Что значит «изменяемость строк» и почему оно имеет значение?
    • Что такое символ?
    • Чем символ отличается от строки?
    • Что такое регулярное выражение (RegEx)?
    • Как выровнять строку по центру или правому краю?
  • Массивы

    • Какие есть три способа создать массив?
    • Как заполнить массив значениями по умолчанию?
    • Как получать доступ к элементам массива?
    • Как получать доступ к группе элементов массива?
    • Как изменять элементы массива?
    • Как объединить массивы
    • Как найти элементы в одном массиве, которых нет в другом массиве?
    • Как найти значения в обоих массивах? (прим. пер. наверное имеются ввиду элементы которые присутствуют одновременно в обоих массивах)
    • Какая разница между push/pop и shift/unshift?
    • Что делает оператор << (shovel)?
    • В чем отличие между > arr.pop и >arr[-1]?
    • Чем отличается << или push одного массива в другой от простого сложения двух массивов?
    • Как удалять элементы массива?
    • Почему стоит быть осторожными при удалении элементов массива?
    • Как переводить массивы в строки?
    • Как переводить другие типы данных в массивы?
    • Как выяснить содержит ли массив заданное значение?
    • Как найти наибольший элемент в массиве?
    • Как найти наименьший элемент в массиве?
    • Как удалить дубликаты из массива?
    • Как узнать размер массива?
    • Как упорядочить массив?
    • Какие есть соглашения по именованию массивов?
    • Что хранить в массивах?
  • Хеши

    • Что такое хеш?
    • Что такое ключи и значения хеша?
    • Чем похожи хеш и массив?
    • Чем хеш отличается от массива?
    • Какие есть три способа создать хеш?
    • Что такое «рокет-хеш»?
    • Как получить доступ к элементу хеша?
    • Как изменить данные в хеше?
    • Какие данные удобно хранить в хеше?
    • Что такое хеши опций?
    • Как удалять данных из хеша?
    • Как складывать хеши?
    • Как получить список ключей или значений хеша?
    • Как узнать содержит ли хеш ключ или значение?
    • Что такое множество?
  • Дата и время

    • Как получить текущее время и дату?
    • Как найти только Год? Месяц? Час? Секунду? День недели?
    • Как создать объект Time для даты 12/25/2013?
    • Как найти сколько дней прошло между двумя Time’s?
    • Какая разница между UTC, GMT и локальным временем?
    • Как узнать сколько времени было 100 секунд назад? 10 дней назад?
  • Прочий полезный материал

    • Что такое nil?
    • Как проверить является ли что-нибудь nil?
    • Какая разница между nil, blank и empty?
    • Являются ли следующие объекты nil или empty?
      • " ", "", [], [""], {}
    • Чем отличаются друг от друга puts, p и print?
    • Что такое параллельное присваивание?
    • Какой самый простой способ поменять значения двух переменных?

Задание

  1. Вы должны уже закончить курс Learn to Program начатый в Основах веб-разработки.
  2. Завершить секцию Введение в Ruby на Codeacademy из их Ruby трека
  3. Завершить проект Codeacademy введение в Ruby ("Putting the Form in Formatter")
  4. Прочитать вторую главу Beginning Ruby Programming == Joy: A Whistle Stop Tour of Ruby and Object Orientation
  5. Прочитать третью главу Beginnig Ruby Ruby's Building Blocks: Data, Expressions, and Flow Control страницы 31-50 (только раздел про Числа и Выражения, а также раздел Текст и Строки)
  6. Просмотреть статью Ruby Date and Time explanation from TutorialsPoint. Необязательно запоминать все модификаторы форматирования времени, просто надо знать об их существовании.
  7. Пройти превосходный туториал по регулярным выражениям и решить примеры (должно занять около одного часа)
  8. Просмотреть список управляющих символов в Ruby и сохранить его для дальнейшего использования. Вероятно вам пригодятся только символ перевода строки \n и символ табуляции \t.
  9. Для более глубокого понимания изложенного выше материала, прочитать следующие статьи Эрика Траутмана:

Проверьте себя

Внимание: если вы хотите на самом деле писать и запускать свой код, вы можете использовать IRB в командной строке (наберите irb) или запустите код из файла, используя команду ruby ./ваш_файл_в_текущей_папке.rb, или используя онлайн редактор на сайте repl.it.

  1. Убедитесь что вы можете пройти Beginner Ruby Quiz #1 от Code Quzzes.
  2. Убедитесь что вы знаете ответы на все вопросы из секции «Пункты для размышления». Увидите что для ответа на большинство вопросов вам необязательно лезть в книгу.

Дополнительные ресуры

Здесь содержатся полезные ссылки на другие ресурсы. Материал необязателен для изучения, но весьма полезен если вы хотите углубиться в какую-либо тему

Поделиться уроком: