2013-09-24 142 views
13

Tôi đang cố gắng in khóa: giá trị Hiện tại tôi vẫn gặp lỗi khi cố gắng chạy mã của mình.Giá trị băm và giá trị băm in của Ruby

Mã:

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

tôi không thể tìm ra một cách để làm điều này trên dòng tương tự. Tôi đã thử các triển khai khác nhau, như sử dụng biểu tượng < <. Tôi cũng đã chơi xung quanh với bản in, sử dụng nhiều câu lệnh đặt và nối cả hai giá trị vào chuỗi và in.

+2

Lỗi nào bạn nhận được? – sawa

+0

Tôi đưa ra giả thiết dựa trên thông tin nhỏ mà bạn cung cấp nhưng sẽ giúp ích nếu bạn đưa ra lỗi chính xác và nội dung của hàm băm bằng cách sử dụng 'output.inspect' –

+0

Hãy làm rõ ý của bạn bằng cách" Tôi không thể tìm ra cách làm điều này trên cùng một dòng. " Bạn đang cố gắng xuất nhiều cặp khóa: giá trị trên một dòng? Bạn có thể cung cấp một ví dụ về đầu ra bạn đang cố gắng đạt được không? – cduhn

Trả lời

21

Tùy thuộc vào nội dung của Hash, bạn có thể cần phải chuyển đổi key thành chuỗi vì nó có thể là một biểu tượng.

puts key.to_s + ' : ' + value 

Hoặc, những gì tôi sẽ đề nghị làm, sử dụng chuỗi suy:

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

Lý do bạn đang nhận được một lỗi, nếu key thực sự không phải là một chuỗi, là bởi vì nó đang cố gắng gọi phương thức + trên bất kỳ số nào key là. Nếu nó không có phương thức +, bạn sẽ gặp lỗi.

+3

+1 cho nội suy chuỗi – engineersmnky