Kurzusok
/
Swift
Swift
/
Feladatok
/
Cal egyedi táblaboltja
Cal egyedi táblaboltja

Cal egyedi táblaboltja

Tanulófeladat

Bevezetés

A stringek olyan adattípusok, amelyek szöveges értéket képviselnek. A Strings a Swiftben Character-ek gyűjteménye, amelyek maguk egy Unicode skalárértéket tartalmaznak.

Stringet string literál segítségével hozhatsz létre; a string literál olyan karaktersorozat, amelyet kettős idézőjelek (") zárnak közre. Többsoros stringekhez hármas idézőjeleket (""") használhatsz.

let hello : String = "Hello, World!"

let poem : String = """
Roses are red,
Violets are blue.
Sugar is sweet,
And so are you.
"""

A Swift stringjei emellett az NSString osztály minden funkciójával is rendelkeznek, amelyet eredetileg az Apple Objective-C könyvtáraiban használtak.

Karakter

A Character olyan adattípus, amely egyetlen Unicode skalárértéket tárol, amely egy vagy több Unicode kódpontból áll. A Unicode skalárérték bármely Unicode-kód pont a U+0000 és U+D7FF közötti zárt tartományban, illetve a U+E000 és U+10FFFF közötti zárt tartományban.

let aChar : Character = "A"

Típuskövetkeztetés

A Swift képes kikövetkeztetni egy string literál típusát, és alapértelmezés szerint String-ként következteti ki. Egy stringet explicit módon Character-ré nyilváníthatsz a Character típusannotációval, ami megköveteli, hogy az érték egyetlen karakter legyen.

let aString = "A"
let aChar: Character = "A"
print(type(of: aString)) // Prints String
print(type(of: aChar))   // Prints Character

// The following code will not compile
let badChar: Character = "Too many characters"
// Error: Cannot convert value of type 'String' to specified type 'Character'

Összefűzés

A Swiftben a stringek a + operátorral fűzhetők össze. A karaktereket nem lehet a + operátorral stringekhez fűzni anélkül, hogy előbb stringgé alakítanád a karaktert.

print("honey" + "comb")
// Prints "honeycomb"

Az append(_:) metódus módosítja a stringet úgy, hogy egy stringet vagy egy karaktert fűz a végére.

var greeting = "Hello"
let world = ", world"
let period: Character = "."

greeting.append(world)
print(greeting) // Prints "Hello, world"

greeting.append(period)
print(greeting) // Prints "Hello, world."

String interpoláció

A string interpoláció olyan módja a String létrehozásának, amely különböző forrásokból, például változókból és kifejezésekből származó értékeken alapul. Ahhoz, hogy string interpolációval értéket illessz be egy stringbe, a kifejezést vagy értéket zárójelbe teszed, amelyet egy visszaperjel előz meg.

let radius = 5.0
let circle = "The area of a circle with radius \(radius) is \(Double.pi * radius * radius)"
print(circle) // Prints "The area of a circle with radius 5.0 is 78.53981633974483"

A stringek és a karakterek tulajdonságai

A stringeknek és a karaktereknek többféle tulajdonságuk van, amelyekkel információt kérdezhetsz le a stringről vagy a karakterről.

A stringek tulajdonságai

Íme néhány a leggyakoribb stringtulajdonságok közül, de az összes megtalálásához nézd meg a dokumentációt.

Tulajdonság Leírás Példa
isEmpty true-t ad vissza, ha a string üres "Hello".isEmpty equals false
count A stringben lévő karakterek számát adja vissza "Hello".count equals 5

A karakterek tulajdonságai

Íme néhány a leggyakoribb karaktertulajdonságok közül, de az összes megtalálásához nézd meg a dokumentációt.

Tulajdonság Leírás Példa
isLowercase true-t ad vissza, ha a karakter kisbetűs "a".isLowercase equals true
isUppercase true-t ad vissza, ha a karakter nagybetűs "A".isUppercase equals true
isNumber true-t ad vissza, ha a karakter szám "1".isNumber equals true
isWhitespace true-t ad vissza, ha a karakter whitespace " ".isWhitespace equals true

Típuskonverzió

Ha egy típust stringgé szeretnél alakítani, használhatod a String() kezdőértéket, amely számos típust elfogad, többek között Int-et, Double-t, Character-t és egyebeket.

let charX: Character = "x"
print(String(charX))     // Prints "x"
print(String(110))       // Prints "110"
print(String(Double.pi)) // Prints "3.141592653589793"

Speciális karakterek

A Swiftben néhány speciális karakter használható a stringekben.

Érték Leírás
\0 Null karakter
\\ Visszaperjel
\t Vízszintes tabulátor
\n Soremelés
\r Kocsivissza
\' Egyszeres idézőjel
\" Kettős idézőjel
\uFFFF Hexadecimális Unicode-karakter
let quote : String = "\"Hello\", he said."
print(quote) // Prints "Hello", he said.

let unicode : Character = "\u{1F496}"
print(unicode) // Prints 💖

Utasítások

Ebben a feladatban olyan kódot írsz, amely segít egy táblákat gyártó cégnek egyedi üzeneteket készíteni a tábláira.

1. Hozz létre egy sor hasznos stringet

Definiáld a következő konstans stringeket, amelyeket a táblák létrehozásához fogsz használni:

  • birthday: Ez a "Birthday" értéket tárolja
  • valentine: Ez a "Valentine's Day" értéket tárolja
  • anniversary: Ez a "Anniversary" stringet tárolja

2. Hozz létre egy sor hasznos karaktert

Definiáld a következő konstans karaktereket, amelyeket a táblák létrehozásához fogsz használni:

  • space: Ez a " " értéket tárolja (egyetlen szóköz)
  • exclamation: Ez a "!" értéket tárolja

3. Fűzd össze a kifejezéseket üzenetekké

Valósítsd meg a buildSign(for:name:) függvényt, amely megkapja a for argumentumot, amelyben az első részfeladatban definiált három string egyike van, valamint a name argumentumot, amely egy string, és annak a személynek a nevét tartalmazza, akinek a tábla szól. A tábla üzenetét összefűzéssel építsd fel, és ne felejtsd el újra felhasználni a már definiált konstansokat. A függvény adja vissza a tábla üzenetét stringként.

buildSign(for: birthday, name: "Otto")
// returns "Happy Birthday Otto!"

buildSign(for: anniversary, name: "Valentina")
// returns "Happy Anniversary Valentina!"

4. Készíts ballagási táblát

Valósítsd meg a graduationFor(name:year:) függvényt, amely megkapja a name argumentumot, amely egy string, és annak a személynek a nevét tartalmazza, akinek a tábla szól, valamint a year argumentumot, amely egy egész szám, és a ballagás évét tartalmazza. A tábla üzenetét template stringekkel építsd fel. A függvény adja vissza a tábla üzenetét stringként.

graduationFor(name: "Padma", year: 2023)
// returns "Congratulations Padma!\nClass of 2023"

5. Számítsd ki egy tábla költségét

Valósítsd meg a costOf(sign:) függvényt, amely megkapja a sign argumentumot, amely egy string, és a tábla üzenetét tartalmazza. A tábla alapára 20 a megadott pénznemben. Ezenfelül minden betű 2-be kerül (a szóközöket is beleszámítjuk a számításba). A függvény adja vissza a tábla költségét egész számként.

costOf(sign: "Happy Birthday Grandma!")
// returns 66
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Swift Exercism

Készen állsz elkezdeni a(z) Cal egyedi táblaboltja feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Swift nyelvet 35 fogalom116 feladat segítségével, valódi emberi mentorálással, mindez ingyen.