0Pricing
Swift Academy · Lekcja

Niestandardowa interpolacja ciągów znaków

Rozszerzanie interpolacji o własne segmenty.

Niestandardowa interpolacja ciągów znaków to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 4 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 Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.

Niestandardowa interpolacja ciągów znaków

Swift pozwala rozszerzać działanie interpolacji przez dodawanie metod do String.StringInterpolation. Umożliwia to dostosowanie obsługi określonych typów argumentów lub etykiet.

extension String.StringInterpolation {
    mutating func appendInterpolation(shout value: String) {
        appendLiteral(value.uppercased() + "!")
    }
}
print("Message: \(shout: "hello")")

Metoda appendInterpolation

Każda niestandardowa interpolacja ma postać mutating func appendInterpolation(...). Jej parametry określają, co można zapisać między nawiasami w ciągu znaków.

extension String.StringInterpolation {
    mutating func appendInterpolation(repeat text: String, times: Int) {
        appendLiteral(String(repeating: text, count: times))
    }
}
print("\(repeat: "ab", times: 3)")

appendLiteral i appendInterpolation

Wewnątrz niestandardowej metody wynik tworzy się przez wywołanie appendLiteral dla zwykłego tekstu i ponowne użycie istniejących interpolacji dla wartości.

extension String.StringInterpolation {
    mutating func appendInterpolation(twice value: Int) {
        appendLiteral("\(value)\(value)")
    }
}
print("\(twice: 7)")

Nazwane argumenty interpolacji

Etykieta pierwszego parametru staje się słowem kluczowym używanym w zapisie, na przykład \(shout: ...). Dzięki temu intencja jest jasna w miejscu wywołania.

extension String.StringInterpolation {
    mutating func appendInterpolation(currency amount: Double) {
        appendLiteral(String(format: "$%.2f", amount))
    }
}
print("Price: \(currency: 9.5)")

Wiele parametrów

Niestandardowe interpolacje mogą przyjmować kilka parametrów, co pozwala przekazywać opcje razem z wartością.

extension String.StringInterpolation {
    mutating func appendInterpolation(_ value: Double, places: Int) {
        appendLiteral(String(format: "%.\(places)f", value))
    }
}
print("\(3.14159, places: 2)")

Formatowanie wartości daty

Typowym zastosowaniem jest przedstawianie wartości w sposób właściwy dla danej dziedziny, na przykład uzupełnianie liczby do stałej szerokości.

extension String.StringInterpolation {
    mutating func appendInterpolation(padded value: Int, width: Int) {
        appendLiteral(String(format: "%0\(width)d", value))
    }
}
print("ID: \(padded: 42, width: 5)")

Warunkowy wynik

Niestandardowa interpolacja może zawierać logikę generującą różny tekst zależnie od danych wejściowych.

extension String.StringInterpolation {
    mutating func appendInterpolation(yesNo flag: Bool) {
        appendLiteral(flag ? "Yes" : "No")
    }
}
print("Active: \(yesNo: true)")

Ponowne używanie istniejących interpolacji

Wewnątrz własnej metody można wywoływać appendInterpolation dla wbudowanych typów, tworząc rozwiązanie na bazie standardowego działania.

extension String.StringInterpolation {
    mutating func appendInterpolation(bracketed value: Int) {
        appendLiteral("[")
        appendInterpolation(value)
        appendLiteral("]")
    }
}
print("\(bracketed: 9)")

Domyślne wartości parametrów

Niestandardowe interpolacje mogą definiować wartości domyślne parametrów, dzięki czemu wywołujący może je pominąć.

extension String.StringInterpolation {
    mutating func appendInterpolation(money value: Double, symbol: String = "$") {
        appendLiteral(symbol + String(format: "%.2f", value))
    }
}
let sym = "EUR "
print("\(money: 5.0)")
print("\(money: 5.0, symbol: sym))")

Kiedy używać niestandardowej interpolacji

Po niestandardową interpolację warto sięgnąć, gdy wzorzec formatowania powtarza się w kodzie; centralizuje ona logikę i zapewnia czytelne miejsce wywołania.

extension String.StringInterpolation {
    mutating func appendInterpolation(stars n: Int) {
        appendLiteral(String(repeating: "*", count: n))
    }
}
print("Rating: \(stars: 4)")

Podsumowanie niestandardowej interpolacji

Rozszerzając String.StringInterpolation, można zamienić powtarzalne formatowanie w czytelną składnię wielokrotnego użytku, osadzoną bezpośrednio w ciągach znaków.

extension String.StringInterpolation {
    mutating func appendInterpolation(percent value: Double) {
        appendLiteral(String(format: "%.0f%%", value * 100))
    }
}
print("Done: \(percent: 0.75)")

Szybkie sprawdzenie

Przypomnij sobie mechanizm działania niestandardowej interpolacji.

Podsumowanie: niestandardowa interpolacja ciągów znaków

Dowiedzieli się Państwo, że rozszerzenie String.StringInterpolation o metody appendInterpolation pozwala definiować nową składnię interpolacji, używając appendLiteral i zagnieżdżonych interpolacji do tworzenia wyniku, a także etykiet, wielu parametrów i wartości domyślnych w celu uzyskania czytelnego formatowania wielokrotnego użytku.

extension String.StringInterpolation {
    mutating func appendInterpolation(upper value: String) {
        appendLiteral(value.uppercased())
    }
}
print("Hello \(upper: "swift")")

Często zadawane pytania

Czy lekcja „Niestandardowa interpolacja ciągów znaków” jest bezpłatna?

Tak — pełny tekst „Niestandardowa interpolacja ciągów znaków” 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 Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Niestandardowa interpolacja ciągów znaków”?

Rozszerzanie interpolacji o własne segmenty. Ćwiczysz Swift 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ąć Swift Academy?

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

Ile czasu zajmuje lekcja „Niestandardowa interpolacja ciągów znaków”?

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

Tak. Każda lekcja Swift 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. Podstawowa interpolacja ciągów znaków
  2. Formatowanie liczb w ciągach znaków
  3. Wielowierszowe literały ciągów znaków
  4. Niestandardowa interpolacja ciągów znaków
← Powrót do Swift Academy