Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Swift lernen

Variablen können auch berechnet sein

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Die Umwandlung von Werten ist ein ideales Einsatzgebiet für berechnete Variablen. Dieses Beispiel rechnet Entfernungen in Kilometer, Meilen und Yards um.
07:50

Transkript

In diesem Video wollen wir uns mit "Computed Properties" beschäftigen. also Variablen, die ihren Wert automatisch zur Verfügung stellen. Das Ganze können wir zusammenfassen unter dem Titel "Berechnete Attribute", und legen uns unter diesem Namen hier auch einen Playground an. Ja, was hat es mit berechneten Attributen auf sich? Wenn wir uns mal vorstellen, wir hätten eine Klasse für eine Strecke, und wir würden sagen, da haben wir eine Variable km (Kilometer), vom Typ diesmal Double, und wir brauchen dann einen Initialisierer, der die Kilometer mit dem Datentyp Double auch entgegennimmt, und wir würden sagen: self.km = km, dann haben wir doch schon alles erfüllt, dass wir uns jederzeit hier unten eine Variable machen können, und zwar, eineStrecke = Strecke, und wir geben hier an, 5 oder 10 km. Ja, dann ist das soweit ganz gut, und wir können dann natürlich eineStrecke.km, auch jederzeit auf diese Property zugreifen, und sehen hier, das ist die 10. Spannender wird es jetzt, wenn uns die Strecke auch die Entfernung in Meilen zur Verfügung stellen soll, und wir das Ganze über eine berechnete Property machen, und das sieht in Swift so aus: das heißt, wir haben dann hier miles, und wir würden sagen, auch die sind als Double angegeben, aber das ist jetzt keine Variable in dem Sinne, wo wir gleich einen Wert zuweisen, sondern es soll ja eben eine berechnete Property sein, eine Computed Property, und aus diesem Grund geben wir hier also einen sogenannten "Getter" an. Und was soll denn gemacht werden? Nun - die Konvertierung von Kilometer in Meilen, die ist ja sehr einfach, dass wir sagen: return km * 0,62137, dass wir sagen: return km * 0,62137, und dann verfügen wir doch über den Wert in Meilen, das heißt, wenn ich jetzt von meiner Strecke hier die Meilen haben will, dann sehen wir, dass die 10 Kilometer eben 6,2137 Meilen sind, und hätten wir eine etwas krummere Zahl hier gewählt, na, ganz so heftig muss es nicht sein - 155 Kilometer, sind dann eben 96,31235 Meilen. So, das heißt, es gibt eigentlich nicht die Property meilen, in der wir einen Double-Wert speichern, es gab nur eine Computed Property, ein berechnetes Attribut. dass wir sagen, wenn wir von einer Strecke die Meilen haben wollen, dann ist das, basierend auf den Kilometern, eben multipliziert mit diesem Faktor, genau dieses Ergebnis. Spannender wird es natürlich, wenn wir uns einmal dann einen Setter betrachten. Denn ein Setter soll ja vielleicht auch existieren, und wir möchten gerne eine Strecke von 100 Meilen angeben, und möchten dazu erfahren, wie viele Kilometer das denn sind. Und deshalb dürfen wir so einen berechneten Property auch durchaus mit einem Setter versehen, und dann ist natürlich die Frage, wo kommt denn dann der neue Value her? Was ist denn gesetzt worden? Und tatsächlich wird unter dem Namen newValue hier ein Wert zur Verfügung gestellt, von dem Datentyp natürlich, dem diese Property angehörig ist, und so dürfen wir sagen, dass unsere Kilometer sind die Meilen, das ist jetzt der neue Wert, dividiert durch 0,62137. Und damit haben wir natürlich etwas Tolles geschaffen, denn jetzt darf ich auch sagen, eineStrecke.miles = 100 das dürfen wir also zuweisen, und dann sehen wir schon, 100 Meilen sind eben 160,934 Kilometer es hat also sofort stattgefunden die Konvertierung, weil wir eine berechnete Property hatten, nicht nur einen Getter implementiert haben, sondern auch einen Setter, und wenn ich eben sage, miles = 100, laufen wir in diesen Setter hinein, in newValue steht dann dieser 100, ja, und 100, dividiert durch diesen Wert, das wollen wir dann den Kilometern zuweisen. Also haben wir hier schon eine wunderbare Möglichkeit für einen Konverter, und wenn wir uns beispielsweise auch noch die Yards angeben lassen wollen, dann können wir das natürlich einfach tun, und wir schreiben uns noch ein Computed Property, haben hier einen Getter, und wir geben dann eben zurück: return km * 0,1093.6, das wäre dann 1 km in Yards, so, und wenn wir hier jetzt die Strecke hätten von 1 km, dann wollen wir die miles sehen, und wenn wir dann auch noch die yards sehen wollen, dann haben wir dann eben hier dieses Ergebnis. Das Interessante ist, dass, wenn ein Computed Property nur einen Getter enthält, und das werde ich jetzt hier testweise machen, dann müssen wir nicht schreiben, dass es sich um einen Getter handelt, sondern wir dürfen gleich die Implementierung hier reinschreiben, man muss also nicht so verbaux, also so ausführlich sein, und Getter und Setter immer benennen, sondern wenn nur der Getter eine Rolle spielen sollte in einer Computed Property, dann darf ich das hier auch einfach hineinschreiben. Ja, und damit ist das schon eine tolle Basis für einen weiteren Währungsumrechner, mal schauen, was da demnächst an Anwendungen in den App-Store gelangt. Thema allerdings waren hier Computed Properties, Properties, die also nicht physisch gespeichert werden, sondern deren Wert sich in Abhängigkeit von anderen Properties bestimmt, und dann ist es natürlich elegant, wenn wir dieses Verfahren verwenden, um zum Beispiel auch Rückrechnungen zu gestatten, das heißt, ich darf Miles setzen, um die Kilometer, was die Basiseinheit unserer Strecke wäre, zur Verfügung zu haben. Ja, so funktioniert das in Swift, ich find's einfach großartig, übersichtlicher kann es fast nicht mehr sein.

Swift lernen

Erkunden Sie die wichtigsten Sprachmerkmale von Swift und ihre modernen Eigenschaften wie Generics, Extensions, Tupels und Optionals.

4 Std. 2 min (30 Videos)
Super wie immer
Joshua B.
Frank Jüstel erklärt wie immer sehr gut und verständlich. Es gibt kaum einen besseren Lehrer. Dennoch ist Swift leider eine sehr dämliche Sprache. Objective-C ist wesentlich einfacher, weil man nicht irgendwo sinnlos Zeichen, wie ! und ? setzen muss. Ich wünschte, Apple wäre bei Objective-C geblieben.
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!