Sådan opretter og bruger du Hashes i Ruby

Arrays er ikke den eneste måde at administrere samlinger af variabler i Rubin. En anden type samling af variabler er hash, også kaldet et assosierende array. En hash er som en matrix, idet det er en variabel, der gemmer andre variabler. Imidlertid er en hash i modsætning til en matrix, idet de gemte variabler ikke gemmes i nogen bestemt rækkefølge, og de hentes med en nøgle i stedet for efter deres placering i samlingen.

Opret en Hash med nøgle- / værdipar

En hash er nyttigt til at gemme, hvad der kaldes nøgle / værdipar. Et nøgle / værdipar har en identifikator, der angiver hvilken variabel af den hash, du vil have adgang til og en variabel til at gemme i den position i hash. For eksempel kan en lærer gemme en studerendes karakterer i en hash. Bobs klasse ville få adgang til i en hash ved hjælp af nøglen "Bob", og variablen gemt på det sted ville være Bobs klasse.

En hashvariabel kan oprettes på samme måde som en matrixvariabel. Den enkleste metode er at oprette et tomt hash-objekt og udfylde det med nøgle / værdipar. Bemærk, at indeksoperatøren bruges, men den studerendes navn bruges i stedet for et tal.

instagram viewer

Husk, at hasjer ikke er sorteret, hvilket betyder, at der ikke er nogen defineret begyndelse eller slutning, som der er i en matrix. Så du kan ikke tilføje en hash. Værdier indsættes simpelthen i hash ved hjælp af indeksoperatøren.

#! / usr / bin / env ruby
karakterer = Hash.new
karakterer ["Bob"] = 82
karakterer ["Jim"] = 94
karakterer ["Billy"] = 58
sætter karakterer ["Jim"]

Hash-bogstaver

Ligesom arrays, kan hashes oprettes med hash konstanter. Hash-bogstaver bruger de krøllede seler i stedet for firkantede parenteser, og nøgleværdiparene er forbundet med =>. For eksempel ville en hash med en enkelt nøgle / værdipar af Bob / 84 se sådan ud: {"Bob" => 84}. Yderligere nøgle / værdipar kan føjes til hash-bogstavet ved at adskille dem med kommaer. I det følgende eksempel oprettes en hash med karaktererne for et antal studerende.

#! / usr / bin / env ruby
karakterer = {"Bob" => 82,
"Jim" => 94,
"Billy" => 58
}
sætter karakterer ["Jim"]

Adgang til variabler i Hash

Der kan være tidspunkter, hvor du skal få adgang til hver variabel i hash. Du kan stadig sløjfe over variablerne i hash ved hjælp af hver loop, selvom det ikke fungerer på samme måde som at bruge hver løkke med matrixvariabler. Fordi en hash ikke er sorteret, i hvilken rækkefølge hver vil sløjfe over nøgle / værdipar er muligvis ikke den samme som i den rækkefølge, du indsatte dem. I dette eksempel vil en hash af karakterer blive sløjpt over og udskrevet.

#! / usr / bin / env ruby
karakterer = {"Bob" => 82,
"Jim" => 94,
"Billy" => 58
}
grade.each do | navn, karakter |
sætter "# {name}: # {grade}"
ende
instagram story viewer