54 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: Ruby Hashes | |||
|  | localeTitle: Рубиновые хеши | |||
|  | --- | |||
|  | ## Рубиновые хеши
 | |||
|  | 
 | |||
|  | Хэш представляет собой набор ключей и значений. Это похоже на то, что обычно называют словарем на других языках. В Ruby хэш похож на [массив](https://raw.githubusercontent.com/freeCodeCamp/guides/master/src/pages/ruby/ruby-arrays/index.md) , но вместо того, чтобы просто хранить значение, он хранит пару ключей, значений. | |||
|  | 
 | |||
|  | ```ruby | |||
|  | array = ["value"]  | |||
|  |  hash = { "key" => "value" }  | |||
|  | ``` | |||
|  | 
 | |||
|  | Существует несколько способов создания нового хэша: | |||
|  | 
 | |||
|  | ```ruby | |||
|  | hash1 = {a: 100, b: "200"}  | |||
|  |  hash2 = Hash.new  | |||
|  |  hash3 = Hash.new(0) # with default value set to 0  | |||
|  | ``` | |||
|  | 
 | |||
|  | Затем программист может получить доступ к хеш-значению, используя свой ключ, а не индекс. | |||
|  | 
 | |||
|  | ```ruby | |||
|  | array[0] # => "value"  | |||
|  |  hash["key"] # => "value"  | |||
|  | ``` | |||
|  | 
 | |||
|  | Таким образом, хэш действует скорее как словарь, где вы можете искать значение по его ключу. | |||
|  | 
 | |||
|  | ```ruby | |||
|  | dictionary = { "Aardvark" => "a large, nocturnal, burrowing mammal",  | |||
|  |                "Zyzzyva" => "a genus of tropical weevils" }  | |||
|  |  dictionary["Aardvark"] # => "a large, nocturnal, burrowing mammal"  | |||
|  |  dictionary["Zyzzyva"] # => "a genus of tropical weevils"  | |||
|  | ``` | |||
|  | 
 | |||
|  | Вы также можете создать хэш, используя [символы в](#) качестве ключей. | |||
|  | 
 | |||
|  | ```ruby | |||
|  | hash = { :symbol => "value" }  | |||
|  |  hash[:symbol] # => "value"  | |||
|  | ``` | |||
|  | 
 | |||
|  | Кроме того, если все ваши ключи являются [символами](#) , вы можете записать свой хэш в этом альтернативном формате, но вы получите доступ к нему таким же образом: | |||
|  | 
 | |||
|  | ```ruby | |||
|  | hash = { symbol: "value" }  | |||
|  |  hash[:symbol] # => "value"  | |||
|  | ``` | |||
|  | 
 | |||
|  | #### Дополнительная информация:
 | |||
|  | 
 | |||
|  | [Ручная хеш-документация](https://ruby-doc.org/core-2.4.2/Hash.html) |