Articles

RubyLearning.com

<Ranges | TOC | Hashes>

et symbol ligner et variabelnavn, men det er forud for et kolon. Eksempler -: handling,: line_items. Du behøver ikke at pre-erklære et symbol, og de er garanteret at være unik. Der er ingen grund til at tildele en slags værdi til et symbol – Ruby tager sig af det for dig. Ruby garanterer også, at uanset hvor det vises i dit program, vil et bestemt symbol have samme værdi.

Alternativt kan du overveje tyktarmen at betyde ” ting navngivet “så :id er” den ting, der hedder id.”Du kan også tænke på :id som betyder navnet på variablen id, og almindeligt id som betyder værdien af variablen.

et Symbol er det mest basale Rubinobjekt, du kan oprette. Det er bare et navn og et internt ID. Symboler er nyttige, fordi et givet symbolnavn henviser til det samme objekt i hele et Ruby-program. Symboler er mere effektive end strenge. To strenge med samme indhold er to forskellige objekter, men for et givet navn er der kun et Symbolobjekt. Dette kan spare både tid og hukommelse.

se eksemplet: p039symbol.RB nedenfor

udgangen, da jeg kørte programmet på min PC, var:

derfor, hvornår bruger vi en streng versus et symbol?

  • hvis indholdet (rækkefølgen af tegn) af objektet er vigtige, skal du bruge en streng
  • hvis objektets identitet er vigtig, skal du bruge et symbol

Ruby bruger symboler og opretholder en Symboltabel til at holde dem. Symboler er Navne – navne på instansvariabler, navne på metoder, navne på klasser. Så hvis der er en metode kaldet control_movie, er der automatisk et symbol :control_movie. Ruby er fortolket, så det holder sit symbolbord praktisk til enhver tid. Du kan finde ud af, hvad der er på det til enhver tid ved at kalde Symbol.all_symbols.
Et Symbolobjekt oprettes ved at præfiksere en operator, streng, variabel, konstant, metode, klasse, modulnavn med et kolon. Symbolobjektet vil være unikt for hvert andet navn, men henviser ikke til en bestemt forekomst af navnet i løbet af et programs udførelse. Således, hvis Fred er en konstant i en sammenhæng, en metode i en anden og en klasse i en tredje, vil symbolet :Fred være det samme objekt i alle tre sammenhænge.

dette kan illustreres ved dette enkle program – p039ksymbol.RB:

udgangen, da jeg kørte programmet på min PC, var:

Her er et andet eksempel – p039ksysymbol.RB:

udgangen er:

i dette eksempel: ja er et symbol. Symboler indeholder ikke værdier eller objekter, som variabler gør. I stedet bruges de som et ensartet navn inden for kode. For eksempel i den foregående kode kan du nemt erstatte symbolet med en streng, som i eksempel – p039.rb

dette giver det samme resultat, men er ikke så effektivt. I dette eksempel opretter hver omtale af ‘ja’ et nyt objekt, der er gemt separat i hukommelsen, mens symboler er enkeltreferenceværdier, der kun initialiseres en gang. I det første kodeeksempel findes kun :Ja, Mens du i det andet eksempel ender med de fulde strenge af ‘ja’ og ‘ja’, der optager hukommelse.

Vi kan også omdanne en streng til et Symbol og omvendt:

symboler er især nyttige, når du opretter hashes, og du vil skelne mellem nøgler og værdier. Se Brug af symboler som Hash-nøgler for et praktisk eksempel.Fabio Akita en brasiliansk Rails entusiast, også kendt online som “AkitaOnRails”, skrev denne eksklusive artikel om Ruby symboler for rubylearning.com medlemmer som dig. Læs artiklen, efter at du har gennemgået denne lektion.

Bemærk: Ruby-logoet er Copyright (c) 2006, Yukihiro Matsumoto. Jeg har gjort omfattende henvisninger til information, relateret til Ruby, tilgængelig i det offentlige domæne (videoer og blogs, artikler fra forskellige Ruby guruer), min anerkendelse og tak til dem alle. Meget af materialet på rubylearning.com og i løbet af rubylearning.org er primært hentet fra programmeringen Ruby book, tilgængelig fra den pragmatiske bogreol.

<Ranges / TOC / Hashes>