76 lines
3.1 KiB
Markdown
76 lines
3.1 KiB
Markdown
---
|
|
status: seed
|
|
type: concept
|
|
tags: []
|
|
created: 2025-12-17
|
|
updated: 2026-05-17
|
|
aliases:
|
|
- Ruby - основы языка
|
|
---
|
|
# Ruby - основы языка
|
|
|
|
Пусть Ruby и объектно-ориентированный язык, можно с ним работать, как с обычным процедурным языком.
|
|
|
|
```ruby
|
|
puts "Hello World!"
|
|
```
|
|
|
|
Команда `puts` выводит что-угодно в консоль.
|
|
|
|
- В конце строк ставить знаки препинания не нужно
|
|
- Пробелы в начале строки ничего не значит, никакой табуляции
|
|
- Если нужно написать несколько команд в одной строке, то `;` заменит перенос строки по смыслу
|
|
|
|
## Комментарии
|
|
- Два вида комментариев:
|
|
- Однострочный - символ `#`
|
|
- Многострочный - конструкция =begin =end
|
|
|
|
## Типы данных
|
|
```ruby
|
|
puts "Hello".class -> String
|
|
puts true.class -> TrueClass
|
|
puts 5.class -> Integer
|
|
puts 6.4.class -> Float
|
|
putl nil.class -> NilClass
|
|
```
|
|
|
|
### Именование
|
|
- Переменные называются с маленькой буквы
|
|
- Классы, обратно, именуются с большой буквы
|
|
- Нельзя называть классы и переменные, используя ключевые слова языка
|
|
|
|
### Преобразование типов
|
|
- Явное (с помощью функций)
|
|
- `to_i` - к целому числу (отсечение дробной части для *float*)
|
|
- `to_s` - к строке
|
|
- `to_f` - к вещественному числу
|
|
- Неявное (преобразование в ходе работы программы) - авто преобразование при мат.операциях (int + float = float)
|
|
![[Pasted image 20260517175400.png]]
|
|
![[Pasted image 20260517175655.png]]
|
|
|
|
## Управляющие конструкции
|
|
|
|
В Ruby есть три основных оператора:
|
|
- if - без ветвления
|
|
`if a > 0 <action> end`
|
|
- if-elsif-else
|
|
- unless - сработает, если условие ложно
|
|
- case
|
|
![[Pasted image 20260517181450.png]]
|
|
|
|
### Операторы цикла
|
|
1) loop - бесконечный цикл (с условиями выхода break)
|
|
2) while - цикл с условием выполнения
|
|
3) next - прерывание шага цикла и моментальный переход на следующий шаг
|
|
4) until - цикл, пока условие ложно
|
|
5) redo - прерывание текущего шага и повторение его же
|
|
6) for - итератор перебора перечислимого объекта
|
|
- самый распространенный вариант - диапазоны:
|
|
- `n..m` - все целые от `n` до `m` *включительно*
|
|
- `n...m` - все числа не включая `m`
|
|
|
|
> ```ruby
|
|
> x, r = x.divmod
|
|
> ```
|