Het opslaan van variabelen binnen variabelen komt veel voor in Ruby en wordt vaak een 'gegevensstructuur' genoemd. Er zijn veel verschillende datastructuren, waarvan de meest eenvoudige de array is.
Programma's moeten vaak collecties van variabelen beheren. Een programma dat uw agenda beheert, moet bijvoorbeeld een lijst met de dagen van de week hebben. Elke dag moet in een variabele worden opgeslagen en een lijst daarvan kan samen in een matrixvariabele worden opgeslagen. Via die ene arrayvariabele hebt u toegang tot elk van de dagen.
U kunt een lege array maken door een nieuw Array-object te maken en het in een variabele op te slaan. Deze array is leeg; je moet het vullen met andere variabelen om het te gebruiken. Dit is een gebruikelijke manier om variabelen te maken als u een lijst met dingen van het toetsenbord of een bestand zou lezen.
In het volgende voorbeeldprogramma wordt een lege array gemaakt met de opdracht array en de toewijzingsoperator. Drie tekenreeksen (geordende reeksen tekens) worden van het toetsenbord gelezen en "geduwd" of aan het einde van de reeks toegevoegd.
#! / usr / bin / env ruby
array = Array.new
3. keer doen
str = gets.chomp
array.push str
einde
Een ander gebruik van arrays is om een lijst op te slaan van dingen die je al weet wanneer je het programma schrijft, zoals de dagen van de week. Als u de dagen van de week in een array wilt opslaan, zou dat kunnen maak een lege array en voeg ze één voor één toe aan de array zoals in het vorige voorbeeld, maar er is een eenvoudigere manier. U kunt een gebruiken array letterlijk.
Bij het programmeren is een "letterlijke" een type variabele die in de taal zelf is ingebouwd en een speciale syntaxis heeft om deze te maken. Bijvoorbeeld, 3 is een numerieke letterlijke en "Robijn" is een letterlijke tekenreeks. Een letterlijk array is een lijst met variabelen tussen vierkante haakjes en gescheiden door komma's, zoals [1, 2, 3]. Merk op dat elk type variabelen in een array kan worden opgeslagen, inclusief variabelen van verschillende typen in dezelfde array.
Het volgende voorbeeldprogramma maakt een array met de dagen van de week en drukt deze af. Er wordt een letterlijke array gebruikt en de elk lus wordt gebruikt om ze af te drukken. Let daar op elk is niet ingebouwd in de Ruby-taal, maar is een functie van de arrayvariabele.
#! / usr / bin / env ruby
dagen = ["maandag",
"Dinsdag",
"Woensdag",
"Donderdag",
"Vrijdag",
"Zaterdag",
"Zondag"
]
days.each do | d |
zet d
einde
Naast eenvoudige lussen over een array - waarbij elke afzonderlijke variabele in volgorde wordt onderzocht - hebt u ook toegang tot individuele variabelen vanuit een array met behulp van de indexoperator. De indexoperator neemt een nummer en haalt een variabele op uit de array waarvan de positie in de array overeenkomt met dat nummer. Indexnummers beginnen bij nul, dus de eerste variabele in een array heeft een index van nul.
Dus bijvoorbeeld om de eerste variabele op te halen uit een array die u kunt gebruiken matrix [0], en om de seconde op te halen die u kunt gebruiken matrix [1]. In het volgende voorbeeld wordt een lijst met namen in een array opgeslagen en opgehaald en afgedrukt met de indexoperator. De indexoperator kan ook worden gecombineerd met de toewijzingsoperator om de waarde van een variabele in een array te wijzigen.
#! / usr / bin / env ruby
names = ["Bob", "Jim",
"Joe", "Susan"]
zet namen [0] # Bob
zet namen [2] # Joe
# Wijzig Jim in Billy
names [1] = "Billy"