У меня небольшие проблемы с пониманием того, как символы работают в моем коде.Я понимаю, что это по сути неизменяемые строки, но я не до конца понимаю, как символы автоматически «распознают» другие части моего кода.
Например, в приведенной ниже программе я передаю два объекта метода в свой math_machineметоды, но для этого я использую символ, представляющий их имя.Откуда Ruby узнает, что я имею в виду эти методы?
def plus x,y
return x+y
end
def minus x,y
return x-y
end
def math_machine(code,x,y)
code.call(x,y)
end
puts math_machine(method(:plus),5,5)
puts math_machine(method(:minus),5,5)
Еще один пример символов, которые я не понимаю, касается инкапсуляции - как attr_reader
, attr_writer
и attr_accessor
знаютчто следующий символ относится к переменной экземпляра в моей программе?
Если бы кто-то мог объяснить мне таинственную природу символов в Ruby (что происходит за кулисами), это было бы потрясающе!