io sono un newb lavoro attraverso alcuni tutorial Rubino e stumped sul uso del metodo send
di seguito. Riesco a vedere che il metodo send sta leggendo il valore dell'attributo iteratore, ma la documentazione di Ruby afferma che il metodo send usa un metodo anteposto ai due punti. Quindi, la mia confusione sta nel come il metodo di invio di seguito è l'interpolazione variabile attributo viene iterato.metodo di invio di Ruby con il blocco di interpolazione variabile
module FormatAttributes
def formats(*attributes)
@format_attribute = attributes
end
def format_attributes
@format_attributes
end
end
module Formatter
def display
self.class.format_attributes.each do |attribute|
puts "[#{attribute.to_s.upcase}] #{send(attribute)}"
end
end
end
class Resume
extend FormatAttributes
include Formatter
attr_accessor :name, :phone_number, :email, :experience
formats :name, :phone_number, :email, :experience
end
'send' può prendere le stringhe così, non solo i simboli. "metodo anteposto ai due punti": è un simbolo, è un concetto di rubino molto semplice. Quindi, qual è esattamente la tua domanda di nuovo? –
In che modo # {send (attribute)} viene interpolato nel singolo valore dell'attributo? – KMcA
'attribute' è nome attributo,' send (attributo) 'ottiene valore per nome,' # {invia (attributo)} 'lo inserisce in una stringa. Non è diverso da, ad esempio, '# {pippo}' o '# {10 * 20}'. –