Ruby Syntax

Напишем простую программу на ruby. Все файлы ruby ​​будут иметь расширение .rb. Поэтому поместите следующий исходный код в файл test.rb.

#!/usr/bin/ruby ​​-w

puts "Hello, Ruby!";

Предпологается, что есть интерпретатор Ruby, доступный в каталоге /usr/bin. Теперь попробуйте запустить эту программу следующим образом:

$ ruby ​​test.rb

Это даст следующий результат:

Hello, Ruby!

Теперь рассмотрим несколько основных концепций, связанных с синтаксисом Ruby:

Whitespace (пробелы) in Ruby Program:

Пробелы, такие как пробелы и табуляции, обычно игнорируются в коде Ruby, за исключением случаев, когда они появляются в строках. Однако иногда они используются для толкования неоднозначных утверждений. Интерпретации такого рода вызывают предупреждения, если включена опция -w.

Пример:

a + b интерпретируется как a + b (здесь a - локальная переменная)

a + b интерпретируется как a (+ b) (здесь a - это вызов метода)

Line Endings in Ruby Program (окончания строк в Ruby):

Ruby интерпретирует точки с запятой и символы новой строки как окончание оператора. Однако, если Ruby встречает такие операторы, как +, - или обратная косая черта в конце строки, они указывают на продолжение оператора.

Ruby Identifiers (идентификаторы Ruby):

Идентификаторы - это имена переменных, констант и методов. Идентификаторы Ruby чувствительны к регистру. Это означает, что Ram и RAM - два разных итератора в Ruby. Имена идентификаторов Ruby могут состоять из буквенно-цифровых символов и символа подчеркивания (_). Имена переменных и других идентификаторов обычно начинаются с буквы или специального модификатора. Основные правила таковы:

  • имена локальных переменных (и таких псевдопеременных, как self и nil) начинаются со строчной буквы или подчерка;

  • имена глобальных переменных начинаются со знака доллара $;

  • имена переменных экземпляра (принадлежащих объекту) начинаются со знака @;

  • имена переменных класса (принадлежащих классу) начинаются с двух знаков @@;

  • имена констант начинаются с заглавной буквы;

  • в именах идентификаторов подчерк (_) можно использовать наравне со строчными буквами;

  • специальные переменные, имена которых начинаются со знака доллара (например, $1 и$/), устанавливаются самим интерпретатором Ruby.

Примеры:

  • локальные переменные alpha, _ ident, some _ var;

  • псевдопеременные self, nil, FILE ;

  • константы Kбchip, Length, LENGTH;

  • переменные экземпляра @foobar, @th:'1138, @NOT _ CONST;

  • переменные класса @@phydeaux, @@my var, @@NOT CONST;

  • глобальные переменные $beta, $B12vitamin, $NOT _ CONST.

Зарезервированные слова:

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

BEGIN END alias and begin

break case class def defined?

do else elsif end ensure

false for if in module

next nil not or redo

rescue retry return self super

then true undef unless untill

when while yield

Here Document in Ruby:

heredoc

При написании сценариев вы можете оказаться в ситуации, когда вам нужно передать многострочный блок текста или кода интерактивной команде. Heredoc – это тип перенаправления, который позволяет передавать в команду несколько строк ввода.

«Документ здесь» относится к построению строк из нескольких строк. После << вы можете указать строку или идентификатор для завершения строкового литерала, и все строки, следующие за текущей строкой до терминатора, являются значением строки.

Если терминатор заключен в кавычки, тип кавычек определяет тип строкового литерала с ориентацией на строку. Обратите внимание, что между << и терминатором не должно быть пробелов.

Вот разные примеры:

$ vim ruby_1.rb

#!/usr/bin/ruby -w

print <<EOF

Способ создания

многострочной строки

--------------------

EOF

print <<EOF; #где то можно написать так

Еще один способ создания

многострочной строки

--------------------

EOF

print <<`COM` #способ выполнить команды

echo "hi1234" there

echo "lo5678" there

COM

print <<"foo",<<"bar" #можно складывать

--------------------

это foo

foo

это bar

bar


В результате:

$ ./ruby_1.rb

Способ создания

многострочной строки

--------------------

Еще один способ создания

многострочной строки

--------------------

hi1234 there

lo5678 there

--------------------

это foo

это bar

$

Ruby BEGIN Statement

Синтаксис:

BEGIN {

code

}

Объявляет код, который будет вызываться перед запуском программы.

Пример:

$ vim ruby_2.rb

#!/usr/bin/ruby

puts "Это основная программа Ruby"

BEGIN {

puts "Инициализация программы Ruby"

}

$ chmod +x ruby_2.rb

$ ./ruby_2.rb

Инициализация программы Ruby

Это основная программа Ruby

$

Ruby END Statement

Синтаксис:

END {

code

}

Объявляет код, который будет вызываться в конце программы.

Пример:

$ vim ruby_3.rb

#!/usr/bin/ruby

puts "Это основная программа Ruby"

END {

puts "Завершение программы Ruby"

}

BEGIN {

puts "Инициализация программы Ruby"

}

$ chmod +x ruby_3.rb

$ ./ruby_3.rb

Инициализация программы Ruby

Это основная программа Ruby

Завершение программы Ruby

$

Комментарии Ruby:

Комментарий скрывает строку, часть строки или несколько строк от интерпретатора Ruby. Вы можете использовать символ решетки (#) в начале строки:

# Я - комментарий. Просто игнорируй меня.

Или комментарий может находиться в той же строке после оператора или выражения:

name = "Madisetti" # Это снова комментарий

Вы можете прокомментировать несколько строк следующим образом:

# Это комментарий.

# Это тоже комментарий.

# Это тоже комментарий.

# Я уже сказал это.

Этот комментарий блока скрывает от интерпретатора несколько строк с = begin / = end:

= begin

Это комментарий.

Это тоже комментарий.

Это тоже комментарий.

Я уже сказал это.

= end