2011-11-20 33 views

Trả lời

18

Cú pháp là để xác định cặp khóa/giá trị băm và sự khác biệt phụ thuộc vào phiên bản Ruby.

được hỗ trợ trong cả Ruby 1,8 và Ruby 1,9

:foo => true 

Chỉ hỗ trợ trong Ruby 1,9

foo: true 

Nếu bạn đang phát triển trong Ruby 1.9 có lẽ bạn nên sử dụng cú pháp:

foo: true 

vì nó dường như là hướng mà cộng đồng đang di chuyển.

+2

Bạn nghe nói rằng '=>' sẽ bị từ chối ở đâu? –

+1

Vâng, bạn nghe thấy âm thanh nào ở đây? => 'Sẽ bị từ chối? Tôi không nhớ một điều như vậy. Và ngay cả khi nó là sự thật, nó sẽ phá vỡ chức năng Hash chính mà bất kỳ đối tượng nào có thể phục vụ như là chìa khóa. Vì vậy, chỉ có các biểu tượng có thể được sử dụng làm khóa nếu điều đó xảy ra! ví dụ: '{Object => Object}' sẽ không còn tồn tại [đó là mã giả của một loại]. – omninonsense

+0

Xin lỗi tôi không thể nhớ lại nơi tôi nghe nói rằng tôi có thể đã thực hiện nó. Tôi đã xóa tham chiếu đến nó cuối cùng sẽ không còn được dùng nữa. – JDutil

6

Sau đó là cú pháp Hash mới được giới thiệu trong 1.9. Xem, ví dụ:

http://breakthebit.org/post/8453341914/ruby-1-9-and-the-new-hash-syntax

Các băm mà hai dòng tạo ra giống hệt nhau.

+2

Điều này chỉ áp dụng khi khóa là biểu tượng. Nếu bạn muốn một đối tượng khác cho khóa, bạn sẽ cần mũi tên chất béo như trước. –

Các vấn đề liên quan