Mojo Academy · Lekcja

Mutowanie w miejscu za pomocą inout

Pozwól funkcji zmienić wartość wywołującego.

Lekcja 2 z 413 kroki

Mutowanie w miejscu za pomocą inout to bezpłatna lekcja Mojo Academy na CoddyKit. To lekcja 2 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 Mojo Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Mojo Academy zawiera 4 lekcji w sumie.

Czasami trzeba ją zmienić

Pożyczanie pozwala tylko na odczyt. Czasami jednak funkcja musi rzeczywiście zmodyfikować wartość wywołującego, na przykład zwiększyć licznik. ✏️

Poznaj inout

Konwencja inout zapewnia funkcji dostęp umożliwiający modyfikację. Zmiany wprowadzone wewnątrz funkcji są odzwierciedlane w zmiennej wywołującego.

Wejście i wyjście

Nazwa mówi wszystko: wartość trafia do funkcji, jest zmieniana, a zaktualizowana wartość wraca do wywołującego. Kopia nie jest zwracana.

Oznaczanie parametru

Przed nazwą parametru należy napisać inout. Od tej pory przypisania wewnątrz funkcji aktualizują bezpośrednio oryginalną zmienną.

fn increment(inout n: Int):
    n += 1

Wywoływanie

Przekaż zmienną i obserwuj, jak zmienia się po wywołaniu. Funkcja zmodyfikowała wartość wywołującego w miejscu, bez potrzeby zwracania wyniku.

var count = 5
increment(count)
print(count)  # 6

Musi być modyfikowalna

Argument przekazywany do parametru inout musi być modyfikowalną zmienną var. Nie można przekazać stałego literału ani pożyczonej wartości.

Wyłączność podczas pożyczenia

Gdy funkcja ma referencję inout, nic innego nie może uzyskać dostępu do tej wartości. Reguła wyłączności zapobiega sprzecznym modyfikacjom.

Bez ukrytych kopii

Podobnie jak pożyczanie, inout działa przez referencję, więc nie powstaje pełna kopia. Można modyfikować wartość bez kosztu duplikowania.

Wywołujący nadal jest właścicielem

W przypadku inout wywołujący zachowuje własność. Funkcja jedynie pożycza wartość w trybie modyfikowalnym na czas wywołania, a następnie zwraca nad nią kontrolę.

Kiedy wybrać inout

Użyj inout, gdy całym zadaniem funkcji jest zaktualizowanie wartości, z której wywołujący będzie nadal korzystać, na przykład powiększenie bufora lub zresetowanie pola.

Odczyt a modyfikacja — porównanie

Dotychczas: borrowed oznacza tylko odczyt, a inout — odczyt i zapis. Wybór właściwego wariantu jasno informuje czytających, co robi funkcja.

Szybkie sprawdzenie

Sprawdźmy, co umożliwia inout.

Podsumowanie

inout pozwala funkcji modyfikować wartość wywołującego w miejscu, przez referencję i bez tworzenia kopii. Wywołujący zachowuje ją przez cały czas. 🎯

Bezpłatny start

Ucz się Mojo dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Mutowanie w miejscu za pomocą inout” jest bezpłatna?

Tak — pełny tekst „Mutowanie w miejscu za pomocą inout” 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 Mojo Academy, przejdź na CoddyKit PRO. Kurs Mojo Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Mutowanie w miejscu za pomocą inout”?

Pozwól funkcji zmienić wartość wywołującego. Ćwiczysz Mojo 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ąć Mojo Academy?

Nie wymagamy żadnego doświadczenia. Mojo 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 2 z 4.

Ile czasu zajmuje lekcja „Mutowanie w miejscu za pomocą inout”?

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 Mojo Academy?

Tak. Każda lekcja Mojo 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.

Wszystkie lekcje w tym kursie

  1. Pożyczanie argumentów tylko do odczytu
  2. Mutowanie w miejscu za pomocą inout
  3. Przejmowanie własności za pomocą owned
  4. Operator transferu
← Powrót do Mojo Academy