Я новичок в Ruby и всегда предполагал, что эти две нотации были идентичным способом интерполирования переменных экземпляра, пока я не заметил разницу в приведенном ниже примере для параметра «vendor».В чем разница между «# @ {var}» и «@ # {var}» в Ruby?
class Component
def initialize(name, version)
@vendor = "vendor"
@name = name
@version = version
puts "#{@vendor}[email protected]#{name}[email protected]#{version}"
end
end
ConfiguredComponent.new("param1", "param2")
=> это работает
class Component
def initialize(name, version)
@vendor = "vendor"
@name = name
@version = version
puts "@#{vendor}[email protected]#{name}[email protected]#{version}"
end
end
ConfiguredComponent.new("param1", "param2")
=> используя @ # {} поставщика обозначения does't работы =>: в 'инициализации': неопределенную локальную переменную или метод `поставщика» для # (NameError)
class Component
def initialize(name, version)
@vendor = "vendor"
@name = name
@version = version
puts "#{@vendor}-#{@name}-#{@version}"
end
end
Component.new("param1", "param2")
=> это также работает
Это ответ. – Tass