home seiten a-z swift <-- hoch --> runter home/swift/intro
Konstanten
VariablenOperatoren
Numerische LiteraleZugriffsmodifiziererTypen Funktionen
ClosuresAufzählungen
Klassen
Strukturen
ProtokolleEigenschaften
Methoden
IndexierungAblaufkontrolle
Optionale BindungFehler BehandlungKonstanten 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"
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"
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
Text
private var variable = "volker"
Typen <_types_> sind Vorgaben für den Aufbau von Objekten.
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
Text …
Text …
Kollektionen <_collections_> sind Sammlungen von Daten in Listen, wie [`Arrays`](#arrays), [`Sets`](#sets) und [`Dictionaries`](#dictionaries).
Ein Array <_array_> ist eine geordnete Liste von Elementen. Für die Deklarierung wird das Schlüsselwort `array` genutzt.
let array = ["volker", "nils"]
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"]
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"]
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!
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.
Eine Function <_function_> ist eine Handlungsanweisung. Für die Deklarierung wird das Schlüsselwort `func` genutzt.
func gebeNamen () -> String {
return "volker"
}
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
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
}
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
}
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"
}
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
Eigenschaften <_properties_> sind Konstanten oder Variablen in Klassen oder Strukturen.
Methoden <_methodes_> sind Funktionen in Klassen oder Strukturen.
Indexe <_subscripts_> sind die Positionen von Elementen in geordneten Listen (Arrays).
Ablaufkontrolle <_control flow_="">
Text
Text
Text
Text
Text
Text
In Swift können Funktionen definiert werden, die Fehler
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.
}