Всем привет! В этой части урока Ruby мы рассмотрим основные концепции программирования языка Ruby. Мы вводим самые основные программы. Мы будем работать с переменными, константами и основными типами данных. Мы будем читать и писать в консоль; мы упомянем переменную интерполяцию.
Начнем с очень простого примера кода:
“code”>#!/usr/bin/rubyputs “This is Ruby”
Это простой скрипт Ruby. Он напечатает сообщение” This Is Ruby ” на консоли.
Это путь к интерпретатору Ruby, который будет выполнять сценарий.
Puts-это ключевое слово Ruby, которое выводит свой аргумент на терминал. В нашем случае аргумент является строковым сообщением, разделенным двойными кавычками.
This is Ruby
Выполнение скрипта дает вышеуказанный результат.
Мы можем считывать значения из терминала. (Терминал и консоль-синонимы)
name = getsputs “Hello #{name}”
Вторая программа считывает значение из консоли и печатает его.
print “What is your name? ”
Ключевое слово print выводит сообщение на консоль. Разница между ключевыми словами print и puts заключается в том, что ключевое слово print не начинает новую строку. Ключевое слово puts автоматически запускает новую строку.
Здесь мы считываем входные данные от пользователя и сохраняем их в переменной name. Метод gets-это метод, который в нашем случае считывает строку из терминала. Это один из методов, которые мы имеем в нашем распоряжении по умолчанию.
В этой строке кода мы выполняем интерполяцию переменных. Интерполяция переменных-это замена переменных их значениями внутри строковых литералов. Другие имена для интерполяции переменных: подстановка переменных и расширение переменных.
What is your name? Jan
Hello Jan
Код Ruby можно запустить из командной строки. Это,скорее всего, пришло из языка Perl, где небольшие фрагменты кода выполняются для выполнения некоторых небольших задач.
1.9.3
Параметр -e указывает Руби выполнить код Ruby, указанный в строке, а не искать имя файла Ruby. В нашем примере версия интерпретатора Ruby выводится на терминал.
Интерпретатор Ruby имеет опцию a-c, которая проверяет синтаксис кода. Если этот параметр используется, код не выполняется. Если синтаксической ошибки нет, Ruby выведет “синтаксис в порядке”.
#!/usr/bin/rubyclass Being end
m = Test.new
p m
В приведенном выше примере имеется синтаксическая ошибка. Если мы помещаем ключевые слова class и end в одну строку, мы также должны использовать символ точки с запятой – ;
syntax_check.rb:3: syntax error, unexpected keyword_end, expecting ‘<‘ or ‘;’ or ‘\n’
syntax_check.rb:6: syntax error, unexpected $end, expecting keyword_end
Обнаружена синтаксическая ошибка. Если мы поставим точку с запятой после класса Being, сообщение об ошибке исчезнет.
Аргументы командной строки Ruby
Программы Ruby могут получать аргументы командной строки. Они следуют за названием программы, когда мы ее запускаем.
#!/usr/bin/rubyputs ARGV
puts ARGV
Здесь мы печатаем все аргументы командной строки для терминала.
1
2
3
Мы предоставляем три числа в качестве аргументов командной строки,и они выводятся на консоль.
В следующем примере мы выведем все аргументы, а также имя скрипта.
puts $*
Глобальная переменная $0 содержит имя выполняемого скрипта. Глобальные переменные в Ruby начинаются с символа$. $ * – Это еще одна глобальная переменная. Это синоним переменной argv. Он содержит аргументы командной строки, заданные для текущего скрипта.
./args2.rb
Ruby
Python
Perl
Тут args2.rb script получает три строки. Имя скрипта и три аргумента выводятся на терминал.
Переменные и константы Ruby
Переменная-это место для хранения данных. Переменная имеет имя и тип данных. Типы данных – это разные типы значений. Целые числа, строки и числа с плавающей запятой являются примерами типов данных. Ruby-это динамический язык. Это означает, что мы не должны (и не можем) объявлять переменную определенного типа данных. Вместо этого интерпретатор Ruby определяет тип данных в момент назначения.
Кроме того, переменная может содержать различные значения, а также различные типы значений с течением времени. Это отличается от языков, которые являются сильно типами, такими как Java, C или Pascal. В отличие от переменных, константы (должны) сохранять свои значения. После инициализации, они не могут быть изменены. В Ruby, однако, можно изменить значение константы. В таком случае выдается предупреждение.
name = “Paul”; age = 35
nationality = “American”puts city
puts name
puts age
puts nationality
city = “London”
puts city
В приведенном выше примере мы работаем с четырьмя переменными.
city = “New York”
Мы присваиваем переменной city строковое значение. Переменная создается динамически.
name = “Paul”; age = 35
Мы создаем еще две переменные. Мы можем поместить два утверждения в одну строку. Для удобства чтения, однако, каждый оператор должен быть на отдельной строке.
puts name
puts age
puts nationality
Мы выводим значения переменных в терминал.
city = “London”
Мы присваиваем новое значение переменной “city”.
New York
Paul
35
American
London
Константы как мы уже говорили, хранят одно значение в течение всего времени. В отличие от других языков, это правило, однако, не применяется в Ruby.
HEIGHT = 150var = 40
puts var
var = 50
puts var
puts WIDTH
WIDTH = 110
puts WIDTH
В этом примере мы объявляем две константы и одну переменную.
WIDTH = 100
HEIGHT = 150
Константы в Ruby начинаются с заглавной буквы. Обычно все символы константы пишутся прописными буквами.
var = 40
puts var
var = 50
Мы объявляем и инициализируем переменную. Позже мы присваиваем переменной новое значение. Это законно.
WIDTH = 110
Мы присваиваем константе новое значение. Константы не должны изменяться после их создания. В противном случае не имеет смысла создавать константу. Интерпретатор Ruby выдаст предупреждение.
$ ./constants.rb
40
50
100
./constants.rb:13: warning: already initialized constant WIDTH
110
Интерполяция в языке Ruby
Интерполяция переменных-это замена переменных их значениями внутри строковых литералов. Другие имена для интерполяции переменных-подстановка переменных и расширение переменных.
age = 34
name = “William”
puts “#{name} is #{age} years old”
В Ruby строки являются неизменными. Мы не можем изменить существующую строку. Интерполяция переменных происходит во время создания строки.
age = 34
name = “William”
Здесь мы объявляем две переменные.
puts “#{name} is #{age} years old”
Строковое сообщение имеет двойные кавычки в качестве границ. Когда мы помещаем имя переменной между символами #{and }, переменная интерполируется: то есть заменяется ее значением. Вот что мы получаем:
William is 34 years old
В этой главе мы немного рассмотрели основы языка Ruby.