home
seiten
a-z
swift
<--
hoch
-->
runter
home/swift/intro
Konstanten
Variablen
Operatoren
Numerische Literale
Zugriffsmodifizierer
Typen
Funktionen
Closures
Aufzählungen
Klassen
Strukturen
Protokolle
Eigenschaften
Methoden
Indexierung
Ablaufkontrolle
Optionale Bindung
Fehler Behandlung
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"
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.
}