vicodin
@vicodin
Имею некоторый опыт

Как написать метод мутатор на ruby?

На удивление не нашел ответа в гугле.
def sqr!(a) # Объявляем метод
  a **= 2
end

b = 5 # Присваиваем значение переменной
sqr! b # Передаём её вышеобъявленному методу
b # Проверяем значение (выводится 5, как сделать чтобы возвращалось 25?)
  • Вопрос задан
  • 2810 просмотров
Пригласить эксперта
Ответы на вопрос 1
viktorvsk
@viktorvsk
Первое что есть в интернете ( www.velocityreviews.com/forums/t814224-creating-ba... ):
class MyNumber
def initialize( initialValue=nil )
@n = initialValue || 0
end

def abs!
@n = @n.abs
end

def method_missing(meth, *args, &block) # :nodoc:
@n.send(meth, *args, &block)
end
end

Далее, думаю, зависит от конкретного контекста задачи.
Проверить можно так:
a = MyNumber.new -5
a.abs!
a
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы