Синтаксичні елементи в Ruby — це основні складові мови програмування, які визначають її структуру та правила написання коду. Вони включають ключові слова, оператори, конструкції для роботи зі змінними, умовами, циклами, методами, класами та модулями. Завдяки цим елементам програміст може описувати логіку програми, керувати потоком виконання коду та працювати з даними.
У Ruby є кілька основних синтаксичних елементів.
1. Змінні та константи
- Локальні змінні:
name = "Alice"
- Глобальні змінні:
$global_var = 10
- Змінні екземпляру класу:
@instance_var = 20
- Змінні класу:
@@class_var = 30
- Константи:
PI = 3.14
(назви констант пишуться з великої літери)
2. Типи даних
- Числа:
42
,3.14
- Рядки:
"Hello"
,'World'
- Символи:
:symbol
- Булеві значення:
true
,false
- Масиви:
[1, 2, 3]
- Хеші:
{name: "Alice", age: 25}
- Nil:
nil
(аналогnull
в інших мовах)
3. Оператори
- Арифметичні:
+
,-
,*
,/
,%
,**
- Логічні:
&&
,||
,!
- Порівняння:
==
,!=
,<
,>
,<=
,>=
,<=>
- Присвоєння:
=
,+=
,-=
,*=
,/=
- Діапазони:
(1..5)
,(1...5)
4. Умовні конструкції
if x > 10
puts "Більше 10"
elsif x == 10
puts "Рівно 10"
else
puts "Менше 10"
end
Також є unless
, тернарний оператор (condition ? true_case : false_case
) і модифікатори (puts "Hello" if x > 5
).
5. Цикли
while
- не рекомендується до використання, краще ітераториuntil
- не рекомендується до використанняfor
- не рекомендується до використанняloop do
- Ітератори:
times
,each
,map
,select
,reduce
6. Методи
def greet(name)
puts "Hello, #{name}!"
end
greet("Alice")
7. Класи та об’єкти
class Person
def initialize(name)
@name = name
end
def say_hello
puts "Hi, I'm #{@name}!"
end
end
person = Person.new("Alice")
person.say_hello
8. Модулі та міксіни
module Greetings
def greet
puts "Hello!"
end
end
class User
include Greetings
end
user = User.new
user.greet # "Hello!"
9. Блоки, Proc та Lambda
[1, 2, 3].each { |n| puts n }
proc_example = Proc.new { puts "Hello from Proc" }
lambda_example = -> { puts "Hello from Lambda" }
10. Обробка винятків
begin
puts 10 / 0
rescue ZeroDivisionError => e
puts "Помилка: #{e.message}"
ensure
puts "Цей код виконається завжди"
end