Symbole a napisy
Kiedy używać symboli
Symbole a napisy to bezpłatna lekcja Ruby Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ruby Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Czym jest symbol?
Symbol to lekka, niezmienna nazwa zapisywana z poprzedzającym ją dwukropkiem, na przykład :name. Symbole są często używane jako identyfikatory i klucze hashy.
status = :active
puts status
puts status.classSymbole są niezmienne
W przeciwieństwie do napisów symboli nie można zmieniać. Gdy raz powstanie :hello, na zawsze pozostaje taki sam.
puts :hello.frozen?
puts "hello".frozen?Ten sam symbol, ten sam obiekt
Każde użycie tego samego symbolu wskazuje na jeden współdzielony obiekt w pamięci. Dwa równe napisy są zwykle różnymi obiektami.
puts :ruby.object_id == :ruby.object_id
puts "ruby".object_id == "ruby".object_idDlaczego symbole oszczędzają pamięć
Ponieważ identyczne symbole współdzielą jeden obiekt, używanie symboli jako powtarzających się kluczy jest oszczędne pod względem pamięci. Napisy za każdym razem tworzyłyby nowy obiekt.
ids = [:a, :a, :a]
puts ids.map(&:object_id).uniq.lengthKonwertowanie między nimi
Użyj to_sym, aby utworzyć symbol z napisu, oraz to_s, aby wykonać konwersję w drugą stronę.
word = "color"
sym = word.to_sym
puts sym
puts sym.to_s.upcaseSymbole jako klucze hashy
Symbole są najczęściej używanymi kluczami hashy w Ruby, ponieważ działają szybko i nigdy się nie zmieniają.
person = { name: "Ada", age: 36 }
puts person[:name]
puts person[:age]Skrócona składnia
Gdy kluczami są symbole, name: "Ada" jest skrótem zapisu :name => "Ada". Oba zapisy tworzą klucze będące symbolami.
a = { color: "red" }
b = { :color => "red" }
puts a == bSymbole w wywołaniach metod
Symbole określają nazwy metod dla narzędzi takich jak send i map(&:method). Forma &:upcase przekształca symbol w blok.
words = ["a", "b", "c"]
puts words.map(&:upcase).inspectKiedy używać napisu
Użyj napisu, gdy wartość jest danymi, które będą wyświetlane, tworzone lub zmieniane: nazwą, komunikatem albo zawartością pliku. Napisy mają rozbudowany zestaw metod do pracy z tekstem.
greeting = "Hello"
greeting << ", world"
puts greetingKiedy używać symbolu
Użyj symbolu dla stałych identyfikatorów: kluczy hashy, stanów i nazw opcji. Sygnalizują one przeznaczenie i nie mogą zostać przypadkowo zmodyfikowane.
def move(direction)
puts "Moving #{direction}"
end
move(:north)Porównywanie symboli i napisów
Symbol i napis zawierający te same litery są nierówne. Są różnymi typami.
puts :name == "name"
puts :name.to_s == "name"Szybki test
Sprawdź swoją wiedzę o symbolach.
Podsumowanie
Potrafi już Pan/Pani rozróżniać te typy:
- Symbole są niezmienne i współdzielone, dlatego idealnie nadają się na klucze i identyfikatory
- Napisy są zmiennymi danymi tekstowymi z rozbudowanymi możliwościami
- konwertuj je za pomocą
to_symito_s :a == "a"ma wartość false
W następnej kolejności: tworzenie i odczytywanie hashy.
config = { mode: :fast }
puts config[:mode]Często zadawane pytania
Czy lekcja „Symbole a napisy” jest bezpłatna?
Tak — pełny tekst „Symbole a napisy” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ruby Academy, przejdź na CoddyKit PRO. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Symbole a napisy”?
Kiedy używać symboli Ćwiczysz Ruby Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Ruby Academy?
Nie wymagamy żadnego doświadczenia. Ruby Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Symbole a napisy”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Ruby Academy?
Tak. Każda lekcja Ruby Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.