Базовый синтаксис Ruby

Всем привет! В этой части урока Ruby мы рассмотрим основные концепции программирования языка Ruby. Мы вводим самые основные программы. Мы будем работать с переменными, константами и основными типами данных. Мы будем читать и писать в консоль; мы упомянем переменную интерполяцию.

Начнем с очень простого примера кода:

“code”>#!/usr/bin/rubyputs “This is Ruby”

Это простой скрипт Ruby. Он напечатает сообщение” This Is Ruby ” на консоли.

#!/usr/bin/ruby

Это путь к интерпретатору Ruby, который будет выполнять сценарий.

puts “This is Ruby”

Puts-это ключевое слово Ruby, которое выводит свой аргумент на терминал. В нашем случае аргумент является строковым сообщением, разделенным двойными кавычками.

$ ./first.rb
This is Ruby

Выполнение скрипта дает вышеуказанный результат.
Мы можем считывать значения из терминала. (Терминал и консоль-синонимы)

#!/usr/bin/rubyprint “What is your name? ”
name = getsputs “Hello #{name}”

Вторая программа считывает значение из консоли и печатает его.

print “What is your name? ”
Ключевое слово print выводит сообщение на консоль. Разница между ключевыми словами print и puts заключается в том, что ключевое слово print не начинает новую строку. Ключевое слово puts автоматически запускает новую строку.

name = gets

Здесь мы считываем входные данные от пользователя и сохраняем их в переменной name. Метод gets-это метод, который в нашем случае считывает строку из терминала. Это один из методов, которые мы имеем в нашем распоряжении по умолчанию.

puts “Hello #{name}”

В этой строке кода мы выполняем интерполяцию переменных. Интерполяция переменных-это замена переменных их значениями внутри строковых литералов. Другие имена для интерполяции переменных: подстановка переменных и расширение переменных.

$ ./name.rb
What is your name? Jan
Hello Jan

Код Ruby можно запустить из командной строки. Это,скорее всего, пришло из языка Perl, где небольшие фрагменты кода выполняются для выполнения некоторых небольших задач.

$ ruby -e “puts RUBY_VERSION”
1.9.3

Параметр -e указывает Руби выполнить код Ruby, указанный в строке, а не искать имя файла Ruby. В нашем примере версия интерпретатора Ruby выводится на терминал.

Интерпретатор Ruby имеет опцию a-c, которая проверяет синтаксис кода. Если этот параметр используется, код не выполняется. Если синтаксической ошибки нет, Ruby выведет “синтаксис в порядке”.

#!/usr/bin/rubyclass Being end

m = Test.new
p m

В приведенном выше примере имеется синтаксическая ошибка. Если мы помещаем ключевые слова class и end в одну строку, мы также должны использовать символ точки с запятой – ;

$ ruby -c syntax_check.rb
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

Аргументы командной строки, указанные после имени файла, доступны программе Ruby в глобальном массиве с именем ARGV.

puts ARGV

Здесь мы печатаем все аргументы командной строки для терминала.

$ ./args.rb 1 2 3
1
2
3

Мы предоставляем три числа в качестве аргументов командной строки,и они выводятся на консоль.

В следующем примере мы выведем все аргументы, а также имя скрипта.

#!/usr/bin/rubyputs $0
puts $*

Глобальная переменная $0 содержит имя выполняемого скрипта. Глобальные переменные в Ruby начинаются с символа$. $ * – Это еще одна глобальная переменная. Это синоним переменной argv. Он содержит аргументы командной строки, заданные для текущего скрипта.

$ ./args2.rb Ruby Python Perl
./args2.rb
Ruby
Python
Perl

Тут args2.rb script получает три строки. Имя скрипта и три аргумента выводятся на терминал.

Переменные и константы Ruby

Переменная-это место для хранения данных. Переменная имеет имя и тип данных. Типы данных – это разные типы значений. Целые числа, строки и числа с плавающей запятой являются примерами типов данных. Ruby-это динамический язык. Это означает, что мы не должны (и не можем) объявлять переменную определенного типа данных. Вместо этого интерпретатор Ruby определяет тип данных в момент назначения.

Кроме того, переменная может содержать различные значения, а также различные типы значений с течением времени. Это отличается от языков, которые являются сильно типами, такими как Java, C или Pascal. В отличие от переменных, константы (должны) сохранять свои значения. После инициализации, они не могут быть изменены. В Ruby, однако, можно изменить значение константы. В таком случае выдается предупреждение.

#!/usr/bin/rubycity = “New York”
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 city
puts name
puts age
puts nationality

Мы выводим значения переменных в терминал.

city = “London”

Мы присваиваем новое значение переменной “city”.

$ ./variables.rb
New York
Paul
35
American
London

Константы как мы уже говорили, хранят одно значение в течение всего времени. В отличие от других языков, это правило, однако, не применяется в Ruby.

#!/usr/bin/rubyWIDTH = 100
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

Интерполяция переменных-это замена переменных их значениями внутри строковых литералов. Другие имена для интерполяции переменных-подстановка переменных и расширение переменных.

#!/usr/bin/ruby

age = 34
name = “William”

puts “#{name} is #{age} years old”

В Ruby строки являются неизменными. Мы не можем изменить существующую строку. Интерполяция переменных происходит во время создания строки.

age = 34
name = “William”

Здесь мы объявляем две переменные.

puts “#{name} is #{age} years old”

Строковое сообщение имеет двойные кавычки в качестве границ. Когда мы помещаем имя переменной между символами #{and }, переменная интерполируется: то есть заменяется ее значением. Вот что мы получаем:

$ ./interpolation.rb
William is 34 years old

В этой главе мы немного рассмотрели основы языка Ruby.

Перейти к верхней панели