--- status: seed type: knowledge tags: - programming - ruby created: 2026-05-17 updated: 2026-05-17 title: Ruby - основы языка source: "[[Ruby - основы языка]]" --- # Ruby — основы языка Ruby — объектно-ориентированный язык, но допускает процедурный стиль написания кода. Всё является объектом, включая числа и булевы значения. Связанные темы: [[Ruby On Rails]] ## Синтаксис - Знак препинания в конце строки не нужен - Отступы не несут синтаксического смысла (в отличие от Python) - Несколько команд в одной строке разделяются через `;` ```ruby puts "Hello World!" puts 42; puts "next line" ``` ## Комментарии ```ruby # однострочный комментарий =begin многострочный комментарий =end ``` ## Типы данных ```ruby "Hello".class # => String true.class # => TrueClass 5.class # => Integer 6.4.class # => Float nil.class # => NilClass ``` ### Именование - Переменные — с маленькой буквы: `my_var` - Классы — с большой буквы: `MyClass` - Ключевые слова языка использовать нельзя ### Преобразование типов **Явное:** | Метод | Что делает | |--------|-----------------------------------------| | `to_i` | к целому числу (дробная часть отсекается) | | `to_f` | к вещественному числу | | `to_s` | к строке | **Неявное:** при математических операциях `Integer + Float` → `Float`. ## Управляющие конструкции ```ruby # if без ветвления if a > 0 action end # if-elsif-else if a > 0 ... elsif a == 0 ... else ... end # unless — выполнится, если условие ложно unless a > 0 action end # case case a when 1 then puts "один" when 2 then puts "два" else puts "другое" end ``` ## Циклы | Оператор | Назначение | |----------|-----------| | `loop` | бесконечный цикл; выход через `break` | | `while` | цикл с условием выполнения | | `until` | цикл, пока условие ложно | | `for` | итератор по перечислимому объекту | | `next` | пропустить текущий шаг | | `redo` | повторить текущий шаг заново | **Диапазоны в `for`:** ```ruby for i in 1..5 # от 1 до 5 включительно for i in 1...5 # от 1 до 4 (5 не входит) ``` **Деление с остатком:** ```ruby x, r = x.divmod(n) ```