5.1. Wykorzystywanie symboli jako kluczy
Podziękowania dla Bena Giddingsa
Problem
Używając hasza, chcielibyśmy poprawić jego efektywność, co podobno jest możliwe, jeśli w charakterze kluczy użyje się symboli zamiast łańcuchów.
Rozwiązanie
W sytuacji, gdy w charakterze klucza używany jest łańcuch zamknięty w apostrofy ('...'
), zawsze można go zastąpić symbolem. Symbole definiuje się bądź to literalnie, rozpoczynając od dwukropka (:keyname
), bądź też konwertując łańcuchy za pomocą metody String#intern
.
people = Hash.new people[:nickname] = 'Matz' people[:language] = 'Japanese' people['last name'.intern] = 'Matsumoto' people[:nickname] # => "Matz" people['nickname'.intern] # => "Matz"
Dyskusja
Dwa identycznie wyglądające łańcuchy ...
Get Ruby. Receptury now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.