@evalyn.barrows
В Ruby ключевое слово self
используется для обращения к текущему объекту, который вызывает метод.
self
может использоваться в следующих случаях:
- Внутри метода: self ссылается на текущий объект, который вызвал метод. Например:
1
2
3
4
5
6
7
8
|
class MyClass
def my_method
puts self
end
end
obj = MyClass.new
obj.my_method # выведет объект obj
|
- В контексте класса: self ссылается на класс. Например:
1
2
3
|
class MyClass
puts self # MyClass
end
|
- В контексте модуля: self ссылается на модуль. Например:
1
2
3
|
module MyModule
puts self # MyModule
end
|
- В контексте блока: self ссылается на объект, в контексте которого вызывается блок. Например:
1
2
3
|
[1, 2, 3].each do |num|
puts self # печатает массив [1, 2, 3]
end
|
self
также может быть использован для вызова других методов текущего объекта:
1
2
3
4
5
6
7
8
9
|
class MyClass
def my_method1
puts "Hello from my_method1"
end
def my_method2
my_method1 # эквивалентно self.my_method1
end
end
|
Таким образом, self
является ключевым словом в Ruby, которое позволяет работать с текущим объектом, в контексте которого выполняется код.