Статьи

Рубин для новичков: переменные, типы данных и файлы

Ruby — один из самых популярных языков, используемых в сети. Недавно мы начали новую серию скринкастов здесь, на Nettuts +, которая познакомит вас с Ruby, а также с отличными фреймворками и инструментами, которые сопровождают разработку на Ruby. Сегодня мы рассмотрим основные типы данных 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 в файлы, поскольку они становятся длиннее. Просто дайте этому файлу расширение .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!!!!

Это оно! Дайте мне знать, если у вас есть какие-либо вопросы в комментариях!