Articles

RubyLearning.com

<zakresy | Toc/Hashes>

symbol wygląda jak nazwa zmiennej, ale jest poprzedzony dwukropkiem. Przykłady -: action,: line_items. Nie musisz wstępnie deklarować symbolu, A są one gwarantowane jako unikalne. Nie ma potrzeby przypisywania jakiejś wartości do symbolu – Ruby dba o to za Ciebie. Ruby gwarantuje również, że bez względu na to, gdzie pojawi się w twoim programie, dany symbol będzie miał taką samą wartość.

Alternatywnie możesz uznać, że dwukropek oznacza „rzecz o nazwie”, więc :id to ” rzecz o nazwie id.”Możesz również myśleć o: id jako o nazwie zmiennej id, a plain id jako o wartości zmiennej.

Symbol jest najbardziej podstawowym obiektem Ruby, jaki możesz stworzyć. To tylko nazwisko i wewnętrzny identyfikator. Symbole są użyteczne, ponieważ dana nazwa symbolu odnosi się do tego samego obiektu w całym programie Ruby. Symbole są bardziej wydajne niż ciągi znaków. Dwa łańcuchy o tej samej zawartości to dwa różne obiekty, ale dla dowolnej nazwy istnieje tylko jeden obiekt symboliczny. Pozwala to zaoszczędzić zarówno czas, jak i pamięć.

zobacz przykład: p039symbol.rb poniżej

wyjście, gdy uruchomiłem program na moim komputerze było:

dlatego, kiedy używamy łańcucha zamiast symbolu?

  • Jeśli zawartość (sekwencja znaków) obiektu jest ważna, użyj łańcucha
  • Jeśli tożsamość obiektu jest ważna, użyj symbolu

Ruby używa symboli i utrzymuje je w tabeli symboli. Symbole to nazwy-nazwy zmiennych instancji, nazwy metod, nazwy klas. Jeśli więc istnieje metoda o nazwie control_movie, automatycznie pojawia się symbol: control_movie. Ruby jest interpretowany, więc zawsze trzyma pod ręką tabelę symboli. Możesz dowiedzieć się, co jest na nim w danym momencie, wywołując Symbol.all_symbols.
obiekt symbolu jest tworzony przez prefiksowanie operatorem, łańcuchem znaków, zmienną, stałą, metodą, klasą, nazwą modułu dwukropkiem. Obiekt symbolu będzie unikalny dla każdej innej nazwy, ale nie odnosi się do konkretnej instancji nazwy, na czas wykonywania programu. Tak więc, jeśli Fred jest stałą w jednym kontekście, metodą w innym, a klasą w trzecim, Symbol: Fred będzie tym samym obiektem we wszystkich trzech kontekstach.

można to zilustrować tym prostym programem – p039xsymbol.rb:

wyjście kiedy uruchomiłem program na moim komputerze było:

oto kolejny przykład – p039xysymbol.rb:

Wyjście To:

w tym przykładzie :yes jest symbolem. Symbole nie zawierają wartości ani obiektów, tak jak zmienne. Zamiast tego są używane jako spójna nazwa w kodzie. Na przykład, w poprzednim kodzie można łatwo zastąpić symbol ciągiem znaków, jak w przykładzie-p039xyzsymbol.rb

to daje ten sam wynik, ale nie jest tak wydajny. W tym przykładzie każda wzmianka o ” tak ” tworzy nowy obiekt przechowywany oddzielnie w pamięci, podczas gdy symbole są pojedynczymi wartościami odniesienia, które są inicjalizowane tylko raz. W pierwszym przykładzie kodu istnieje tylko :yes, podczas gdy w drugim kończy się pełnym ciągiem 'yes’ I ’ yes ’ zajmującym pamięć.

możemy również przekształcić ciąg znaków w Symbol i odwrotnie:

symbole są szczególnie przydatne podczas tworzenia skrótów i chcesz mieć rozróżnienie między kluczami i wartościami. Praktyczny przykład można znaleźć w sekcji używanie symboli jako kluczy skrótu.

Fabio Akita Brazylijski entuzjasta szyn, znany również w Internecie jako „AkitaOnRails”, napisał ten ekskluzywny artykuł na temat symboli Ruby dla rubylearning.com członkowie tacy jak ty. Przeczytaj artykuł, po przejściu tej lekcji.

Uwaga: Logo Ruby jest chronione prawem autorskim (C) 2006, Yukihiro Matsumoto. Zrobiłem obszerne odniesienia do informacji związanych z Ruby, dostępnych w domenie publicznej (wiki i blogi, artykuły różnych guru Ruby), moje podziękowania i podziękowania dla nich wszystkich. Dużo materiału na rubylearning.com a na kursie w rubylearning.org jest zaczerpnięta przede wszystkim z książki programistycznej Ruby, dostępnej w Pragmatic Bookshelf.

< TOC | Hashes >