Ruby — один из самых популярных языков, используемых в сети. Недавно мы начали новую серию скринкастов здесь, на Nettuts +, которая познакомит вас с Ruby, а также с отличными фреймворками и инструментами, которые сопровождают разработку на Ruby. Сегодня мы рассмотрим основные типы данных Ruby, а также использование переменных и хранение вашего кода Ruby в файлах.
Наверстать
- Часть 1. Установка Ruby и начало работы
Посмотреть скринкаст
Основные типы данных и объекты Ruby
В этой главе мы познакомим вас с основами типов данных Ruby.
Струны
Рубиновые строки мало чем отличаются от других языков, к которым вы, вероятно, привыкли. Вы можете использовать как двойные, так и одинарные кавычки для создания строк:
1
2
3
|
my_string = «Hello, World!»
my_other_string = ‘What’s going on?’
|
Конечно, если вы хотите использовать в строке одинаковый тип кавычек, вам придется ее избежать:
1
2
|
greeting_1 = ‘How\’re y\’all doin\’?’
greeting_2 = «\»How are you doing?\» she asked.»
|
Ruby предлагает интерполяцию строк: «встраивание» результата некоторого кода в строку. Вероятно, вы будете делать это чаще всего с переменными, но вы можете выполнить любой код там, где захотите. Код, который вы интерполируете, находится между #{
и }
:
1
2
3
4
|
name = «Andrew»
greeting = «Hello, my name is #{name}»
addition = «25 x 8 = #{25 * 8}»
|
чисел
Ruby может обрабатывать как целые числа, так и числа с плавающей точкой (числа с десятичными числами), и делает это так, как вы ожидаете:
1
2
3
4
|
ten = 10
fifteen_point_two = 15.2
twenty_five_point_two = ten + fifteen_point_two;
|
Вот первый из множества кусочков синтаксического сахара, которые мы увидим: вы можете использовать подчеркивание как разделитель тысяч при написании длинных чисел; Руби игнорирует подчеркивание. Это позволяет легко читать большие числа:
1
|
billion = 1_000_000_000
|
Массивы
Есть два способа создать пустой массив:
1
2
3
4
5
|
my_arr = Array.new
my_other_arr = []
my_third_array = [«one», «two», «three»]
|
Как видите, создать массив с элементами очень просто.
Чтобы добавить элемент в массив, вы можете использовать метод push
или использовать квадратные скобки, поместив соответствующий индекс в скобки. Вы также можете использовать квадратные скобки, чтобы вернуть значения.
1
2
3
4
|
my_arr.push(«foobar»)
my_arr[1] = «gizmo»
my_arr[0] # foobar
|
Хэш
Хеш в Ruby подобен литералу объекта в JavaScript или ассоциативному массиву в PHP. Они сделаны аналогично массивам:
1
2
3
|
my_hash = Hash.new
my_other_hash = {}
|
Чтобы поместить элемент в хеш, вы снова используете обозначение в квадратных скобках. Вы можете использовать любое значение в качестве ключа, но строки или символы (далее) являются общими параметрами.
1
2
3
|
my_hash[«name»] = «Andrew»
my_hash[:age] = 20
|
Чтобы создать хеш с объектами в нем с самого начала, вы используете нотацию, почти идентичную объектным литералам JavaScript; единственное отличие состоит в том, что Ruby использует стрелку ( =>
) между ключами и значениями:
1
|
person = { :name => «Joe», :age => 35, :job => «plumber» }
|
Символы
Символы — это легкие струны. Они часто используются в качестве идентификаторов, в местах, где другие языки часто используют строки. Они используются вместо строк, потому что они могут занимать гораздо меньше памяти (это усложняется, поэтому я стараюсь быть проще; если вы хотите прочитать больше, прочитайте эту статью ).
Чтобы создать символ, просто поставьте перед словом двоеточие; Вы можете увидеть несколько примеров этого во фрагментах кода выше.
Правда, ложь и ноль
Эти значения работают так, как вы ожидаете. Nil
— это «ничто» значение Руби, хотя это объект.
Методы на объектах
Поскольку все в Ruby является объектом, почти все имеют методы, которые вы можете запустить:
1
2
3
4
5
|
name = «Andrew»
name.upcase # «ANDREW»
name.downcase # «andrew»
|
Вы можете легко добавлять методы к объектам. Первый способ — добавление одноэлементного метода . Это метод, который помещается только в один экземпляр объекта.
1
2
3
4
5
6
7
8
|
name = «Andrew»
name_2 = «Joe»
def name.add_last_name
«#{self} Burgess»
end
name.add_last_name # «Andrew Burgess»
name_2.add_last_name # NoMethodError
|
Если вы хотите, чтобы все строки имели этот метод, вы можете сделать это, открыв класс String и добавив метод экземпляра .
01
02
03
04
05
06
07
08
09
10
11
|
name = «Joe»
name_2 = «Andrew»
class String
def add_last_name
«#{self} last_name_goes_here»
end
end
name.add_last_name # «Joe last_name_goes_here»
name.add_last_name # «Andrew last_name_goes_here»
|
Ruby Files
Конечно, вы захотите поместить свой код Ruby в файлы, поскольку они становятся длиннее. Просто дайте этому файлу расширение .rb
, и все будет хорошо.
Попробуйте поместить это в файл:
1
2
3
4
5
6
7
|
name = «Joe»
def name.shout
«#{self.upcase}!!!!»
end
puts name.shout
|
Чтобы запустить этот код, откройте свой терминал и запустите:
1
2
|
$ ruby your_file_name.rb
JOE!!!!
|
Вывод
Это оно! Дайте мне знать, если у вас есть какие-либо вопросы в комментариях!