«Hello, World!» – классический пример тестовой программы. Эта простая программа, которую может написать даже новичок, позволяет также убедиться, что среда правильно настроена и работает.
Это руководство поможет написать такую программу в Ruby. Чтобы несколько разнообразить её, мы покажем, как научить программу запрашивать имя пользователя и использовать его в приветствии. В результате у вас будет программа, которая работает так:
Please enter your name.
8host
Hello, 8host! I’m Ruby!
Требования
Для работы вам понадобится локальная среда разработки. Настроить такую среду можно с помощью одного из руководств:
- Установка Ruby и настройка локальной среды разработки в Ubuntu 16.04
- Установка Ruby и настройка локальной среды разработки в macOS
1: Базовая программа «Hello, World!»
Чтобы написать базовую программу «Hello, World!», откройте текстовый редактор и создайте новый файл:
Вставьте следующий код:
puts «Hello, World!»
Ruby Programming | In One Video
Рассмотрим разные компоненты этого кода подробнее.
puts – это метод Ruby, который выводит на экран текст.
После этого метода идет последовательность символов «Hello, World!». Все символы, которые находятся в кавычках, составляют строку. Метод puts отобразит эту строку на экране.
Некоторые методы доступны в Ruby по умолчанию. Такие встроенные методы всегда доступны при написании программ Ruby. Также вы можете определять собственные методы.
Сохраните и закройте файл (Control+X, Y).
2: Запуск программы
Теперь нужно попробовать запустить программу «Hello, World!». Для этого можно использовать команду ruby.
Команда должна вернуть:
Команда ruby запустила интерпретатор Ruby. Интерпретатор читает указанный файл и оценивает его содержимое. Он выполнил код puts “Hello, World!”, вызвав функцию puts и передав ей строковое значение «Hello, World!».
В данном случае строка Hello, World! также называется аргументом. Аргумент – это значение, передаваемое методу.
Кавычки, в которые помещена строка, не отображаются, потому что они необходимы, чтобы обозначить интерпретатору Ruby пределы строки.
Итак, программа работает. Теперь попробуйте сделать ее интерактивной.
3: Пользовательский ввод
Эта простая программа при запуске будет выдавать один и тот же результат. Чтобы немного усложнить ее, настройте запрос пользовательских данных. Полученные данные программа сможет использовать в выводе.
Создайте новый файл для программы в текстовом редакторе:
Вставьте эту строку, которая будет запрашивать имя пользователя:
puts «Please enter your name.»
Это уже знакомый вам метод puts, который выводит текст на экран.
Следующая строка будет собирать пользовательские данные:
puts «Please enter your name.»
name = gets
Метод gets собирает ввод с клавиатуры. Это приостанавливает программу, позволяя пользователю ввести любой текст. Программа продолжит работу, когда пользователь нажмет клавишу Enter на своей клавиатуре. Все нажатия клавиш, включая нажатие клавиши Enter, собираются программой и преобразуются в строку символов.
Ruby in 100 Seconds
Эти символы можно использовать в выводе программы. Для этого присвойте полученную строку переменной name. Ruby сохраняет строки в памяти компьютера, пока программа не завершит работу.
Затем добавьте эту строку:
puts «Please enter your name.»
name = gets
puts «Hi, #! I’m Ruby!»
Здесь снова используется метод puts. Также здесь используется функция Ruby, которая называется строковой интерполяцией. Она позволяет извлекать присвоенное переменной значение и помещать его внутри строки. Вместо слова name в строке будет значение, введенное пользователем.
Сохраните и закройте файл (Ctrl+X, Y).
Запустите программу. Она запросит имя пользователя. Введите имя и нажмите Enter. Вывод должен выглядеть так:
Please enter your name.
8host
Hi, 8host
! I’m Ruby!
Как видите, вывод программы разделяется, и вместо одной строки «Hi, 8host! I’m Ruby!» мы получаем две строки.
Дело в том, что программа фиксирует все нажатия клавиш, включая клавишу Enter, которая запускает дальнейшие действия программы. Но в строке нажатие клавиши Enter создает специальный символ, который переводит весь последующий вывод в новую строку. Потому программа отображает текст именно так, разбив строку на две. Это можно исправить.
Откройте файл greeting.rb:
Найдите эту строку:
И добавьте в нее:
Метод chop будет применяться к строке, полученной методом gets. Метод chop удаляет последний символ из строки. В данном случае это символ новой строки, создаваемый нажатием клавиши Enter.
Сохраните и закройте файл.
И вы получите одну строку:
Please enter your name.
8host
Hi, 8host! I’m Ruby!
Теперь у вас есть программа Ruby, которая может запрашивать данные пользователя и использовать их в выводе.
Заключение
Попробуйте расширить свою простую программу. Например, вы можете запросить любимый цвет пользователя и научить программу называть ее любимый цвет. Можно даже попытаться использовать эту технику для создания простой программы Mad-Lib.
Источник: www.8host.com
Код в стиле Ruby: грамотно, красиво и рационально. Пример для начинающих
Это перевод поста Майкла МакКи. Майкл — профессиональный программист, который время от времени делится своим опытом и навыками с коллегами, как начинающими кодерами, так и профессионалами.
Большинство программистов в последнюю очередь думают об эстетике кода, который они создают. Конечно, общих правил придерживаются почти все. Но что, если пойти дальше? Хороший код, в первую очередь, должен работать. Но я считаю, что у него должен быть свой стиль, это касается не только содержания, но и формы.
Skillbox рекомендует: Практический годовой курс «PHP-разработчик с нуля до PRO».
Напоминаем: для всех читателей «Хабра» — скидка 10 000 рублей при записи на любой курс Skillbox по промокоду «Хабр».
На самом деле это не так. Вот некоторые проблемы, с которыми сталкиваются все начинающие программисты, которые занимаются самообразованием. Про это есть тонны статей и заметок, но я хочу рассказать, как оформить код визуально так, чтобы он был не только корректным, но и неплохо выглядел со стороны. Я считаю, что самовыражаться можно не только в изобразительном искусстве — это можно делать всегда и везде.
Для меня очень важна организация работы, а также ее визуальная форма. Ruby — отличный вариант языка программирования, как будто специально сделанный, чтобы отвечать моим требованиям, поскольку позволяет делать то, что мы хотим, без всяких проблем. Он гибкий, стильный и логичный.
Давайте рассмотрим этот пример.
Даже начинающий программист поймет, что здесь не так. На этот код просто больно смотреть. А вот исправленный вариант, который выглядит уже получше.
Уф! Намного лучше. Теперь мы видим, что к чему относится и каким образом. Но и этот код можно улучшить. Декларирование attr_reader и attr_accessor можно сделать еще более выразительным.
Объявление каждого нового атрибута с новой строки гораздо легче воспринимается. Теперь у нас есть список атрибутов, которые присвоены каждому аксессору. Можно пойти и дальше.
Здесь уже легко понять, где есть только возможность чтения, где — и чтения, и записи.
Давайте теперь посмотрим на следующую часть этого класса — метод инициализации. Здесь можно сделать много чего.
В принципе, код читаем, вроде бы все хорошо. Но можно сделать и лучше.
Если проставить все операторы присваивания в одну колонку, получается весьма неплохо. Глядя на этот код, легко сказать, что, как и почему будет работать.
Давайте посмотрим, как теперь будет выглядеть InvoiceItem целиком.
Теперь у нас есть класс, который легко читаем и понятен с первого взгляда. Присваивания легко подбираются, аксессоры атрибутов просто использовать.
Какие еще есть возможности оптимизации нашего кода? В большинстве случаев в самом начале изучения программирования написание тестов может вызывать проблемы из-за отсутствия нужных знаний. Время тратится на создание фейковых данных. В этом нет ничего ужасного, но во многих случаях это приводит к созданию больших массивов сложно читаемого текста. Давайте посмотрим вот на это.
Ох, блин. Здесь в самом начале создается новый репозиторий для хранения классов транзакций. Всего их три, каждый используется для теста, попадания в хеш для более позднего использования. Причем для класса, который мы собираемся создавать, требуется немало атрибутов. Каждый из них имеет довольно длинное имя и значение.
Что можно улучшить так, чтобы код выглядел хорошо?
Основы программирования на Ruby
Ruby — это чистый объектно-ориентированный язык программирования. Чаще всего он используется для создания веб-приложений. Фреймворк для разработки приложений Ruby on Rails — первая реализация Ruby, которая приходит на ум.
Ruby — это динамичный язык программирования с открытым исходным кодом. Акцент здесь сделан на простоте и производительности.
У Ruby элегантный синтаксис, естественный для чтения и легкий для написания.
Первым делом напишем простую программу на Ruby. Все файлы здесь имеют расширение .rb. Поместим в файл example.rb следующий исходный код:
puts «Hello, I’m learning Ruby Programming!»;
Теперь предположим, у нас в каталоге есть интерпретатор Ruby. Попробуем запустить программу:
$ ruby example.rb
Результат выполнения будет такой:
Hello, I’m learning Ruby Programming!
Переменные в Ruby
В программировании переменная представляет собой место хранения вместе с соответствующим символическим именем, которое содержит некоторое известное или неизвестное количество информации, называемое значением. Переменная — это контейнер для различных типов данных, таких как целое число, число с плавающей точкой, строка и т. д.
Присвоение значения переменным происходит следующим образом:
для целого числа:
синтаксис: variable_name = value
пример: a = 5
для числа с плавающей точкой:
синтаксис: variable_name = value
пример: a = 10.5
для строки:
синтаксис: variable_name = «value»
пример: a = «abc»
Типы переменных в Ruby
Существует пять типов переменных:
1. Константы.
2. Глобальная переменная.
3. Переменная класса.
4. Переменная экземпляра.
5. Локальная переменная.
- Пример объявления константы:
a = «This is my book.»
2. Пример объявления глобальной переменной (используется символ $ ):
$var = ‘I love my-self’
5. Пример объявления локальной переменной:
var = 10
Получение данных от пользователя
Один из способов получения информации от пользователя — вызов метода gets .
gets — это сокращение от get string («получить строку»). Когда задействуется этот метод, программа ждет от пользователя 1) ввода информации и 2) нажатия клавиши Enter. Вот пример:
>> a = gets
demo
>> «demon»
Ввели код a = gets , дальше компьютер ожидает введения какой-то информации. Вводим demo , затем нажимаем на Enter, и программа возвращает «demon» .
n на конце — это символ новой строки, обозначающий клавишу Enter. Но здесь в строке он не нужен. Чтобы от него избавиться, используется chomp , присоединенный к gets с помощью точки. Этот .chomp ставится в конце любой строки для удаления символов возврата каретки.
>> a = gets.chomp
demo
>> «demo»
>> puts ‘Enter value for a : ‘
>> a = gets.chomp.to_i
>> puts ‘Enter value for b: ‘
>> b = gets.chomp.to_i
>> c = a + b
>> puts «Sum : #»
вывод: Enter value for a : 10 Enter value for a : 20 Sum = 30
Методы
Что такое метод/функция?
Метод — это набор инструкций, выполняющих задачу. Как и функция. Разница в том, что метод связан с объектом, а функция — нет.
Названия методов в Ruby должны начинаться со строчной буквы. Название метода, написанное с заглавной буквы, может быть принято в Ruby за константу. В этом случае парсинг вызова будет выполнен некорректно.
Методы в Ruby должны быть определены до их вызова, иначе в случае вызова неопределенного метода будет выдано исключение.
def method_name
expr..
end
Всякий раз, когда вызывается простой метод, пишется только название метода:
method_name
def demo(a1 = «Ruby», a2 = «programming»)
puts «This is #»
puts «This is #»
end
test «C», «C++»
test
вывод:
This is C
This is C++
This is Ruby
This is programming
Дата и время в Ruby
В Ruby даты и время представляет класс Time .
Получение текущей даты и времени:
time = Time.new puts «Current Time : » + time.inspect puts time.year # => Год даты puts time.month # => Месяц даты (с 1 по 12) puts time.day # => День даты (с 1 по 31) puts time.wday # => 0: День недели (0 — это воскресенье) puts time.yday # => 365: День года puts time.hour # => 23: 24-часовой формат puts time.min # => 59 puts time.sec # => 59 puts time.usec # => 999999: микросекунды puts time.zone # => «UTC»: название часового пояса
вывод:
Current Time : Mon Jun 02 12:03:08 -0700 2008
2021
7
2
1
154
12
3
8
247476
UTC
Массив
Что такое «массив»?
В программировании массив — это коллекция различных типов данных в одном контейнере или переменной.
Массив создается или инициализируется множеством способов. Один из них — с помощью метода класса new :
names = Array.new
Размер массива задается во время создания массива:
names = Array.new(20)
Каждому элементу массива присваивается значение:
names = Array.new(4, «system»)
puts «#»
вывод:
[«system», «system», «system», «system»]
new задействуется также с блоком:
nums = Array.new(10) < |e| e = e * 2 >
puts «#»
вывод:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
Есть еще один метод массива [] . Вот как он работает:
nums = Array.[](1, 2, 3, 4,5)
И еще одна форма создания массива:
nums = Array[1, 2, 3, 4,5]
Здесь для создания массива цифр метод в качестве аргумента принимает диапазон:
digits = Array(0..9)
puts «#»
вывод:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- Разбор методов Ruby
- Создание простого веб-скрейпера на Ruby
- Google OAuth для реализации на Ruby
Источник: nuancesprog.ru