*   >> läser Utbildning artiklar >> science >> programming

ActivePerl Hashes

ActivePerl Hashes Grunderna i ActivePerl - Del 10 Inledning Detta är en del 10 av min serie, Grunderna i ActivePerl. En hash är som en array, men inte exakt samma. I denna del av handledningen tittar vi på hash av ActivePerl. Obs: Om du inte kan se koden, eller om du tror att något saknas (bruten länk, bild frånvarande), bara att kontakta mig på [email protected]. Det vill säga, kontakta mig för minsta problem du har om vad du läser.

En Hash Innehåll Exempel Följande lista visar några frukter och deras färger: Apple => lila Banana => gul Päron => grön citron => green I listan ser vi att Apple är lila, är banan gul, etc. => tecken bara visar att objektet till vänster motsvarar objektet till höger. Detta är en hash lista. Låt oss titta på en typisk array lista; en förteckning över första namnen på vissa anställda i ett företag: 0 John 1 Mary 2 Petrus 3 Augustine 4 Angela 5 Susan 6 Martin i arrayen listan första kolumnen ska alltid vara index; medan den andra kolumnen kan ha siffror eller strängar.

I en hash lista den första kolumnen är inte nödvändigtvis index; Det kan bestå av siffror och /eller strängar; den andra kolumnen kan också bestå av siffror och /eller strängar. Skillnaden mellan ett hash lista och en array lista är att för en array lista den första kolumnen alltid består av index (räknat tal från noll), men för en hash lista den första kolumnen kan vara tal och /eller strängar. Den andra kolumnen för en matris eller hash listan kan vara vad som helst (siffror och /eller strängar).

För de två exemplen ovan, har hash listan strängar för den första kolumnen och arrayen listan har sina ovillkorliga index. Resten av den här guiden kommer att ta itu med hashar. Skapa en Hash Syntaxen för att skapa en hash är: my% hashName = (nyckel1 => värde1, KEY2 => value2, KEY3 => värde3, ...); Du börjar med det reserverade ordet, min, sedan ett mellanslag. Nästa du har symbolen%, följt av namnet på hash. Hash namn föregås av% är hash variabeln. Efter att du har uppdraget operatören. Då har du hash listan inom parentes (parentes).

Om man tittar på hash exemplet ovan, är den första kolumnen kallas nycklarna; den andra kolumnen kallas värdena. Du skriver dem som sådana i parentesen. Varje hash elementet inom hakparenteserna börjar med nyckeln, följt av => tecken (dvs. likhetstecknet följt av större än-tecken), därefter motsvarande värde. Innan du skriver nästa element, måste du skriva kommatecken först. Naturligtvis gör det sista elementet inte har ett kommatecken innan stängnings parentes. Nåväl, efter den avslutande parentes du har semikolon; som indikerar slutet på en ActivePerl uttalande.

Om värdet är en sträng det skrivs inom parentes inom citationstecken (enkel eller dubbel). Om värdet är ett tal, är det inte skrivs inom citationstecken. Du kan ge namn, fruitColor till frukten exemplet ovan. Följande uttalande skapar hash i ActivePerl: my% fruitColor = (Apple => "purple", Banana => "gul", päron => "gröna", citron => "grön"); Lägg märke till att inom parentes nycklarna inte är inom citationstecken.

Ovanstående uttalande kan skrivas in koden prydligt på följande sätt: my% fruitColor = (Apple => "purple", Banana => "gul", päron => "gröna", citron => "grön"); Öppna en hashvärde Syntaxen att få tillgång till ett hashvärde: $ hashName {"nyckel"} Du börjar med en $ symbol, följt av hash namn, och sedan ett par klammerparenteser. Inne klammerparenteserna, har du nyckeln (i enkla eller dubbla citattecken) av motsvarande värde. Så för att få tillgång till den lila strängen ovan, skulle du skriva: $ fruitColor {'Apples} I detta uttryck nyckeln måste vara inom citationstecken, (enkel eller dubbel).

Men när du skapar hash nycklarna inte är inom citationstecken. Detta uttryck returnerar motsvarande värde för nyckeln. Ändra ett hashvärde Du använder ovanstående uttryck för att ändra ett hashvärde på följande sätt: $ hashName {"nyckel"} = newValue; Så för att ändra färgen på äpplet i hash från lila till rött, skriver du: $ fruitColor {'Apples} = "red"; Läs och prova följande kod, där den ursprungliga färgen för Apple visas och sedan ändrat och åter visas.

use strict; print "Content-Type: text /html \\ n \\ n"; min% fruitColor = (Apple => "purple", Banana => "gul", päron => "gröna", citron => "grön"); print $ fruitColor {'Apples}; print "$ fruitColor {'Apples} =" red ", print $ fruitColor {' Apples};. Åtkomst med en variabel i stället för en knapp Du kan få tillgång till ett värde med en variabel i stället för en nyckel Följande kodsegment illustrerar detta: min $ herKey = 'Apples, print $ fruitColor {$ herKey}; hashfunktioner Hash har fungerar precis som gruppen har funktioner Vi tittar på några hashfunktioner resenärer nedan varje Funktion Syntaxen att använda varje funktion.

. är: var (% HashName) Detta uttryck returnerar antingen nästa nyckel /värde-par eller nästa tangent beroende på vad som kallas listan sammanhang eller skalära sammanhang I vår koden nedan det är nästa nyckel /värde-par som kommer att återlämnas.. I koden nedan använder jag hash ovan med fyra element Så om du använder varje funktionen fyra gånger du kommer att ha fyra olika nyckel /värdepar Läs och prova följande kod: Använd strikt, print "Content-Type..

: text /html \\ n \\ n ", min% fruitColor = (Apple =>" purple ", Banana =>" gul ", päron =>" gröna ", citron =>" grön "); skriva ut varje (% fruitColor); print "print vardera (% fruitColor), print" print vardera (% fruitColor); print "print vardera (% fruitColor), print" I min dator jag hade följande utdata: Bananayellow Applepurple Lemongreen Peargreen Tja, nyckeln och värdet för varje par är inte åtskilda; Låt oss inte oroa sig för nu. Ordningen av de centrala /värde-par är inte samma ordning som vi skrivit dem i hash. Bara konstatera att denna ordning inte kan förutbestämd.

Så varje funktion kommer tillbaka nästa nyckel /värde-par under vissa förutsättningar. Det börjar med vad den anser vara den första, sedan om det kallas igen, återgår vad den anser som nästa, och så vidare. Du ActivePerl programmerare inte kan veta i vilken ordning elementen kommer att returneras. Nycklarna Funktion syntax tangenter är: nycklar (% hashName) Den returnerar en lista (som kan hållas av en array) av alla nycklar i en hash.

Läs och prova följande kod: använd strikt; print "Content-Type: text /html \\ n \\ n"; min% fruitColor = (Apple => "purple", Banana => "gul", päron => "gröna", citron => "grön"); minaarr = nycklar (% fruitColor); printarr; Ordningen på retur knapparna igen är inte förutbestämt (inte hur de typades). Värdena Funktion Syntaxen för värden funktionen är: värden (% hashName) Värdena Funktionen fungerar på ett liknande sätt som tangenterna funktion förutom att den returnerar en lista över värdena i hash och inte en lista över nycklarna.

Läs och prova följande kod: använd strikt; print "Content-Type: text /html \\ n \\ n"; min% fruitColor = (Apple => "purple", Banana => "gul", päron => "gröna", citron =>

Page   <<       [1] [2] [3] [4] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.