Articles

RubyLearning.com

<Områder | TOC | Hashes>

et symbol ser ut som et variabelt navn, men det er prefiks med et kolon. Eksempler -: handling,: line_items. Du trenger ikke å pre-erklære et symbol, og de er garantert å være unik. Det er ikke nødvendig å tildele noen form for verdi til et symbol – Ruby tar vare på det for deg. Ruby garanterer også at uansett hvor det vises i programmet ditt, vil et bestemt symbol ha samme verdi.

Alternativt kan du vurdere kolonet til å bety «ting som heter» så: id er » tingen som heter id.»Du kan også tenke på :id som betyr navnet på variabelen id, og vanlig id som betyr verdien av variabelen.

Et Symbol er Det mest grunnleggende Rubinobjektet du kan opprette. Det er bare et navn og en intern ID. Symboler er nyttige fordi et gitt symbolnavn refererer til det samme objektet gjennom Et Ruby-program. Symboler er mer effektive enn strenger. To strenger med samme innhold er to forskjellige objekter, men for et gitt navn er det bare ett Symbolobjekt. Dette kan spare både tid og minne.

Se eksemplet: p039symbol.rb under

utgangen når jeg kjørte programmet på PCEN min var:

Derfor, når bruker vi en streng mot et symbol?

  • Hvis innholdet (tegnsekvensen) til objektet er viktig, bruk en streng
  • hvis objektets identitet er viktig, bruk et symbol

Ruby bruker symboler, og opprettholder Et Symboltabell for å holde dem. Symboler er navn-navn på instansvariabler, navn på metoder, navn på klasser. Så hvis det er en metode som kalles control_movie, er det automatisk et symbol: control_movie. Ruby er tolket, så det holder Sin Symbol Tabellen hendig til alle tider. Du kan finne ut hva som er på det til enhver tid ved å ringe Symbol.all_symbols.
Et Symbolobjekt opprettes ved å prefikse en operatør, streng, variabel, konstant, metode, klasse, modulnavn med et kolon. Symbolobjektet vil være unikt for hvert annet navn, men refererer ikke til en bestemt forekomst av navnet, så lenge et program kjøres. Dermed, Hvis Fred er en konstant i en kontekst, en metode i en annen, og en klasse i en tredje, Symbolet: Fred vil være det samme objektet i alle tre sammenhenger.

dette kan illustreres med dette enkle programmet-p039xsymbol.rb:

utgangen da jeg kjørte programmet på PCEN min var:

her er et annet eksempel – p039xysymbol.rb:

utgangen er:

i dette eksemplet er :ja et symbol. Symboler inneholder ikke verdier eller objekter, slik variabler gjør. I stedet brukes de som et konsekvent navn i kode. For eksempel, i den forrige koden kan du enkelt erstatte symbolet med en streng, som i eksempel-p039xyzsymbol.rb

dette gir samme resultat, men er ikke så effektivt. I dette eksemplet oppretter hver omtale av ‘ja’ et nytt objekt lagret separat i minnet, mens symboler er enkeltreferanseverdier som bare initialiseres en gang. I det første kodeeksemplet eksisterer bare :ja, mens i det andre eksemplet ender du med de fulle strengene av ‘ ja ‘og’ ja ‘ tar opp minne.

Vi kan også forvandle En Streng Til Et Symbol og omvendt:

Symboler er spesielt nyttige når du lager hasher, og Du vil skille mellom nøkler og verdier. Vennligst referer Til Bruk Av Symboler Som Hash-Nøkler for et praktisk eksempel.Fabio Akita En Brasiliansk Rails entusiast, også kjent på nettet som «AkitaOnRails», skrev denne eksklusive artikkelen Om Ruby Symboler for rubylearning.com medlemmer som deg. Les artikkelen, etter at du har gått gjennom denne leksjonen.

Merk: Ruby-Logoen Er Copyright (c) 2006, Yukihiro Matsumoto. Jeg har gjort omfattende referanser til Informasjon, relatert Til Ruby, tilgjengelig i det offentlige området (wikier og blogger, artikler Av Ulike Ruby Guruer), min anerkjennelse og takk til dem alle. Mye av materialet på rubylearning.com og i løpet av rubylearning.org er trukket primært Fra Programmering Ruby book, tilgjengelig fra Pragmatic Bookshelf.

<Områder | TOC / Hashes >