2013-09-24 17 views
13

Sto tentando di stampare il codice: valore Attualmente continuo a ricevere errori quando provo a eseguire i miei codici.Tasto cancelletto cancelletto e valore

Il codice:

output.each do |key, value| 
    puts key + ' : ' + value 
end 

non riesco a capire un modo per fare questo sulla stessa linea. Ho provato varie implementazioni, ad esempio l'utilizzo del simbolo <. Ho anche giocato con la stampa, usando più istruzioni put e aggiungendo entrambi i valori in una stringa e stampandoli.

+2

Quali errori ottieni? – sawa

+0

Ho fatto un'ipotesi sulla base delle poche informazioni che hai fornito, ma sarebbe di aiuto se tu avessi dato l'errore esatto e il contenuto dell'hash usando 'output.inspect' –

+0

Per favore chiarisci cosa intendi con" Non riesco a trovare un modo per fai questo sulla stessa linea. " Stai provando a generare più chiavi: coppie di valori su una singola riga? Puoi fornire un esempio dell'output che stai cercando di raggiungere? – cduhn

risposta

21

A seconda del contenuto di Hash, potrebbe essere necessario convertire lo key in una stringa poiché potrebbe trattarsi di un simbolo.

puts key.to_s + ' : ' + value 

Oppure, quello che vorrei suggerire facendo, l'uso di interpolazione di stringhe:

puts "#{key}:#{value}" 

La ragione si stanno ottenendo un errore, se key non è infatti una stringa, è perché sta cercando di chiamare il metodo + su qualunque sia lo key. Se non ha un metodo +, si otterrà un errore.

+3

+1 per l'interpolazione delle stringhe – engineersmnky

Problemi correlati