RubyLearning.com
<Ranges | TOC | Hashes>
egy szimbólum úgy néz ki, mint egy változó neve, de kettősponttal van előtagolva. Példák -: action,: line_items. Nem kell előre deklarálnia egy szimbólumot, és garantáltan egyediek lesznek. Nem kell valamilyen értéket hozzárendelni egy szimbólumhoz-a Ruby gondoskodik erről az Ön számára. A Ruby azt is garantálja, hogy függetlenül attól, hogy hol jelenik meg a programban, egy adott szimbólumnak ugyanaz az értéke lesz.
Alternatív megoldásként a kettőspontot úgy is tekintheti, hogy “nevű dolog”, tehát :id jelentése “az id nevű dolog.”Gondolhat arra is, hogy az id az id változó nevét, a sima id pedig a változó értékét jelenti.
a szimbólum a legalapvetőbb Rubinobjektum, amelyet létrehozhat. Ez csak egy név és egy belső azonosító. A szimbólumok azért hasznosak, mert egy adott szimbólumnév ugyanarra az objektumra utal a Ruby programban. A szimbólumok hatékonyabbak, mint a húrok. Két azonos tartalmú karakterlánc két különböző objektum, de bármely adott névhez csak egy Szimbólumobjektum van. Ez időt és memóriát takaríthat meg.
lásd a példát: p039szimbólum.rb lent
a kimenet, amikor a programot futtattam a számítógépemen, a következő volt:
ezért mikor használunk karakterláncot a szimbólummal szemben?
- ha az objektum tartalma (karaktersorozata) fontos, használjon karakterláncot
- ha az objektum identitása fontos, használjon szimbólumot
A Ruby szimbólumokat használ, és egy Szimbólumtáblát tart fenn azok tárolására. A szimbólumok nevek-példányváltozók nevei, módszerek nevei, osztályok nevei. Tehát, ha van egy control_movie nevű módszer, akkor automatikusan megjelenik egy szimbólum :control_movie. A Ruby értelmezett, így mindig kéznél tartja a Szimbólumtábláját. A szimbólum hívásával megtudhatja, mi van rajta egy adott pillanatban.all_symbols.
A szimbólum objektum jön létre előtaggal operátor, string, változó, állandó, módszer, osztály, modul nevét egy kettőspont. A symbol objektum minden egyes név esetében egyedi lesz, de nem utal a név egy adott példányára, a program végrehajtásának időtartama alatt. Így, ha Fred állandó az egyik kontextusban, egy módszer a másikban, és egy osztály a harmadikban, a szimbólum :Fred ugyanaz az objektum lesz mindhárom kontextusban.
ezt szemlélteti ez az egyszerű program – p039xsymbol.rb:
a kimenet, amikor a programot futtattam a számítógépemen, a következő volt:
itt van egy másik példa – p039xysymbol.rb:
a kimenet:
ebben a példában :Igen egy szimbólum. A szimbólumok nem tartalmaznak értékeket vagy objektumokat, mint a változók. Ehelyett konzisztens névként használják őket a kódon belül. Például az előző kódban könnyen helyettesítheti a szimbólumot egy karakterlánccal, mint például – p039xyzsymbol.rb
Ez ugyanazt az eredményt adja, de nem olyan hatékony. Ebben a példában az ‘Igen’ minden említése egy új objektumot hoz létre, amelyet külön tárolnak a memóriában, míg a szimbólumok egyetlen referenciaértékek, amelyeket csak egyszer inicializálnak. Az első kódpéldában csak: igen létezik, míg a második példában az ‘igen’ és az ‘Igen’ teljes karakterláncai vesznek fel memóriát.
egy karakterláncot szimbólummá is alakíthatunk, és fordítva:
a szimbólumok különösen hasznosak kivonatok létrehozásakor, és különbséget kell tenni a kulcsok és az értékek között. Kérjük, olvassa el a szimbólumok használata Hash kulcsként gyakorlati példát.
Fabio Akita egy brazil Rails rajongó, más néven online “AkitaOnRails”, írta ezt az exkluzív cikket Ruby szimbólumok a rubylearning.com tagok, mint te. Ne olvassa el a cikket, miután ment keresztül ezt a leckét.
Megjegyzés: A Ruby logó szerzői jog (C) 2006, Yukihiro Matsumoto. Kiterjedt utalásokat tettem a Ruby-val kapcsolatos, nyilvánosan elérhető információkra (wikik és blogok, különböző Ruby guruk cikkei), elismerésemet és köszönetemet. Az anyag nagy része rubylearning.com és a tanfolyamon rubylearning.org elsősorban a programozási Ruby könyvből származik, amely a pragmatikus könyvespolcról érhető el.
< tartományok | TOC / hashek>