Skip to content

Latest commit

 

History

History
423 lines (317 loc) · 13 KB

swift-intro.md

File metadata and controls

423 lines (317 loc) · 13 KB
<style> body { background-color : DodgerBlue } h2 { background-color : Tomato } i { background-color : Orange } </style>

home seiten a-z swift <-- hoch --> runter home/swift/intro

Einführung in Swift

Konstanten

Konstanten constants sind Objekte zur Speicherung von Werten und/oder Funktionen, die im Programmverlauf nicht mehr geändert werden können. Für die Deklarierung wird das Schlüsselwort let genutzt.

let constant = "volker"         

details rauf runter


Variablen

Variablen <variables> sind Objekte zur Speicherung von Werten und/oder Funktionen, die im Programverlauf geändert werden können. Für die Deklarierung wird das Schlüsselwort var genutzt.

var variable = "volker" 

details rauf runter


Operatoren

details rauf runter


Numerische Literale

let decimalInteger =     17       // 17 in dezimaler Notation
let binaryInteger =      0b10001  // 17 in binärer Notation
let octalInteger =       0o21     // 17 in octal Notation
let hexadecimalInteger = 0x11     // 17 in hexadecimaler Notation

details rauf runter


Zugriffsmodifizierer

Text

private var variable = "volker" 

details rauf runter


Typen

Typen <types> sind Vorgaben für den Aufbau von Objekten.

details rauf runter


Einfache Typen

let c: Character = "a"
let s: String = "volker"
let b: Bool = true
let i: Int = -1            // positive und negative Ganzzahen
let i8: Int8 = -1          // Ganzzahlen von -128 bis 127 - (Int8, Int16, Int32, Int64, Int)
let u: UInt = 1            // nur positive Ganzzahen
let f: Float = 1.1
let d: Double = 1.1

details rauf runter


Zeichen

Text ...

details rauf runter


Zeichenketten

Text ...

details rauf runter


Kollektionen

Kollektionen <collections> sind Sammlungen von Daten in Listen, wie Arrays, Sets und Dictionaries.

details rauf runter


Arrays

Ein Array <array> ist eine geordnete Liste von Elementen. Für die Deklarierung wird das Schlüsselwort array genutzt.

let array = ["volker", "nils"]

details rauf runter


Sets

Ein Set <set> ist eine ungeordnete Liste von unterschiedlichen Elementen. Für die Deklarierung wird das Schlüsselwort set genutzt.

let set: Set = ["volker", "nils"]

details rauf runter


Wörterbücher

Ein Wörterbuch <dictionary> ist eine Liste von ungeordneten Schlüssel/Wert <key/value> Paaren. Für die Deklarierung wird das Schlüsselwort dictionary genutzt.

let wörterbuch = [1: "volker", 2: "nils"]

details rauf runter


Optionale Typen

Ein optionaler Type <optional type> ist eine Typ der auch nil (nicht) enthalten darf. Für die Deklarierung wird das Suffix ? der Typenbezeichnung angehängt.

let o1: Optional<String>    //  Optional<Wrapped>
let o2: String!

details rauf runter


Opaque Typen

Ein opaquer Type <opaque type> ist ein Typ der sich verhalten soll wie ein zugeordneter Typ. Für die Deklarierung wird das Schlüsselwort some der Typenbezeichnung vorangestellt.

details rauf runter


Funktionen

Eine Function <function> ist eine Handlungsanweisung. Für die Deklarierung wird das Schlüsselwort func genutzt.

func gebeNamen () -> String {
    return "volker"
}

details rauf runter


Closures

Ein Closure <closure> ist eine Handlungsanweisung.

// Funktion vs. Closure
func gruesseFunktion () -> String { "hallo" }     // print(gruesseFunktion()) -> hallo
let gruesseClosure1: () -> String = { "hallo" }   // print(gruesseClosure1()) -> hallo

let gruesseClosure2 = { "hallo" }                 // print(gruesseClosure2()) -> hallo

details rauf runter


Aufzählungen

Eine Aufzählung <enumeration> ist eine Aufzählung von Werten. Für die Deklarierung wird das Schlüsselwort enum genutzt.

enum EineAufzählung {
    // Definition des Inhalts der Aufzählung
}

details rauf runter


Klassen

Eine Klasse <class> ist ein Typ für referenzierbare Objekte zur Datenkapselung von Eigenschaften <properties> und Methoden <methodes>. Für die Deklarierung wird das Schlüsselwort class genutzt.

class EineKlasse {
    // Definition des Inhalts der Klasse
}

details rauf runter


Strukturen

Eine Struktur <structure> ist ein Typ für nicht referenzierbare Objekte zur Datenkapselung von Eigenschaften <properties> und Methoden <methodes>. Für die Deklarierung wird das Schlüsselwort struct genutzt.

// Allgemein
struct EineStruktur {
    // Definition des Inhalts der Struktur
}

// Beispiel
struct Person {
    var name: String = "volker"
}

details rauf runter


Protokolle

Ein Protokoll <protokol> bescheibt Anforderungen an benutzerdefinierte Typen die mit dem Protokoll konform gehen sollen. Für die Deklarierung wird das Schlüsselwort protokol genutzt.

// Allgemein
protocol EinProtokoll {
    // Definition des Inhalts des Protokolls
}

// Beispiel
protocol PersonProtokoll {
    var vorname: String { get set }
    var nachname: String { get set }
    
    func gruesse () -> String
}

// Anwendung
class PersonKlasse: PersonProtokoll {
    var vorname: String = "volker"
    var nachname: String = "kasack"
    
    func gruesse() -> String {
        return "Hallo " + vorname + " " + nachname + "!"
    }
}
let person = PersonKlasse()   // print(person.gruesse()) -> Hallo volker kasack

details rauf runter


Eigenschaften

Eigenschaften <properties> sind Konstanten oder Variablen in Klassen oder Strukturen.

details rauf runter


Methoden

Methoden <methodes> sind Funktionen in Klassen oder Strukturen.

details rauf runter


Indexierung

Indexe <subscripts> sind die Positionen von Elementen in geordneten Listen (Arrays).

details rauf runter


Ablaufkontrolle

Ablaufkontrolle <control flow>

details rauf runter


for-in Schleife

Text

details rauf runter


while Schleife

Text

details rauf runter


repeat-while-Schleife

Text

details rauf runter


if Anweisung

Text

details rauf runter


switch Anweisung

Text

details rauf runter


Optionale Bindung

Text

details rauf runter


Fehler Behandlung

In Swift können Funktionen definiert werden, die Fehler werfen. Diese fehlerwerfenden Funktionen werden in do-try-catch Anweisungen verarbeitet.

Fehlerwerfende Funktion:

func canThrowAnError() throws {
    // die Funktion kann einen Fehler werfen.
}

do-try-catch Anweisung:

do {
    try canThrowAnError()
    // weiter wenn kein Fehler geworfen wurde.
} catch {
    // weiter wenn ein Fehler geworfen wurde.
}

details rauf runter


Links:

Videos:


home seiten a-z swift <-- hoch --> rauf