MCDan schrieb:
Ich hoffe der Grund für dieses neue Swift-Statement ist nicht einfach nur kompakterer Code, sondern das ganze ist auch deutlich lesbarer und verständlicher als der entsprechende for-/while-loop.
Wovon träumst Du nachts?
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
MCDan schrieb:
Ich hoffe der Grund für dieses neue Swift-Statement ist nicht einfach nur kompakterer Code, sondern das ganze ist auch deutlich lesbarer und verständlicher als der entsprechende for-/while-loop.
Bisher war ich der Meinung, dass Swift als Alternative zu bisherigen Programmiersprachen zu verstehen ist.tsunamix schrieb:
Wovon träumst Du nachts?MCDan schrieb:
Ich hoffe der Grund für dieses neue Swift-Statement ist nicht einfach nur kompakterer Code, sondern das ganze ist auch deutlich lesbarer und verständlicher als der entsprechende for-/while-loop.
MCDan schrieb:
Der o.a. Code soll doch wohl nicht wirklich eine Alternative zum C-style-for-loop sein, oder?
Wenn man einen Range schon umdrehen kann, verstehe ich nicht, warum es in Swift nicht auch entsprechendes ein Literal dafür gibt. Die Lesbarkeit von meinem oder Thyraz' Vorschlag ist so lala. Eine While-Schleife ist da vielleicht doch lesbarer. Kernighan & Ritchie haben die For-Schleife ja nur als eine spezielle Kurzform für typische While-Schleifen gesehen.tsunamix schrieb:
Der unmittelbaren Leesbarkeit hilft das auch nicht....
for(int i = n; i > 0; i /= 2) { ... }
oder for(int i = 1; i < n; 1 <<= 1) { ... }
, die man manchmal bei Teilen-Um-Zu-Überwinden- oder Bitmasken-Verfahren braucht. Da landet man dann in vielen Nicht-C-Sprachen wieder beim While. t-no schrieb:
Da mir wirklich noch nie eine Situation in der Art "verdammt, warum darf ich von dieser Klasse erben und diese Methode hier überschreiben? Ich will das nicht können!" vorgekommen ist*, habe ich noch mal ein bisschen recherchiert und dabei eine ziemlich gute (und erstaunlich neutrale) Erklärung gefunden:
martinfowler.com/bliki/DirectingAttitude.html
t-no schrieb:
Das tolle ist: Der Urheber ist quasi prominent (ich hatte den Namen schon vorher gehört
t-no schrieb:
ein gewaltiger Vorteil in Diskussionen mit Leuten, die eigentlich gar keine richtige Meinung haben, sondern nur unreflektiert ihren Vorbildern nachbeten...
final
as default heißt eben nicht, ich kann es als vererbbar umflaggen? Dann ist das Blödsinn. Kann ich mir aber nicht vorstellen. um ein Objekt zu erzeugen muss ich es ja von irgend einem Rootobjekt ableiten. Oder kann Swift neuerdings prototypbasierte objektorientierte Programmierung?kmr schrieb:
Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
Marco Feltmann schrieb:
Oder ist das Methoden überschreiben in Extensions mittlerweile erlaubt?
Dann reduziert sich der Bedarf an Subklassen natürlich enorm.
Also doch einSuperclasses should be intentionally designed to be subclasses and the author required to opt-in to subclassing and memberoverrides where that is required by the design
subclassable
Flag.kmr schrieb:
Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Marco Feltmann ()
matz schrieb:
Nein, siehe auch hierMarco Feltmann schrieb:
Oder ist das Methoden überschreiben in Extensions mittlerweile erlaubt?
Dann reduziert sich der Bedarf an Subklassen natürlich enorm.
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html
NOTE
Extensions can add new functionality to a type, but they cannot override existing functionality.
10.stride()
... Echt jetzt?Thyraz schrieb:
Ich denke jedem ist aber klar, dass das Brechen der Kompatibilität alten Codes in den nächsten 1-2 Jahren aufhören muss und IMO wird es das auch.
kmr schrieb:
Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
10.for(/*meinetwegen dekrement und end*/) {}
nimmt?Marco Feltmann schrieb:
10.stride()... Echt jetzt?
Klar, natürlich, ich durchschreite die 10 bis zur 0 in Zweierschritten.
Bin ich der Einzige, der sich nicht vorstellen kann eine Zahl zu durchschreiten? Eine Collection, logisch. Einen Range, klar.
<DeborahMorganMode>
Aber das ist eine verfickte Scheißganzzahl!
</DeboraMorganMode>
Marco Feltmann schrieb:
Davon ging ich mit Veröffentlichung als OpenSource aus. Nach dem Motto: Wenn die Welt damit arbeiten soll, müssen wir es mal auf einem stabilen Stand halten.
Hab ich mich geirrt.
macmoonshine schrieb:
@Marco: Das war immer so, das ist so und das wird auch immer so bleiben. Extensions sind ein Konzept, das orthogonal zu Subclassing ist.matz schrieb:
Nein, siehe auch hierhttps://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.htmlMarco Feltmann schrieb:
Oder ist das Methoden überschreiben in Extensions mittlerweile erlaubt?
Dann reduziert sich der Bedarf an Subklassen natürlich enorm.
NOTE
Extensions can add new functionality to a type, but they cannot override existing functionality.
Amin Negm-Awad schrieb:
Hmmm, wenn es orthogonal stünde, müsste es ja Extensions mit Überschreiben und welche ohne Überschreiben geben.
Amin Negm-Awad schrieb:
Es mag einen Grund (IM SINNE VON CAUSA) geben.
Marco Feltmann schrieb:
10.stride()
... Echt jetzt?
Klar, natürlich, ich durchschreite die 10 bis zur 0 in Zweierschritten.
Bin ich der Einzige, der sich nicht vorstellen kann eine Zahl zu durchschreiten? Eine Collection, logisch. Einen Range, klar.
<DeborahMorganMode>
Aber das ist eine verfickte Scheißganzzahl!
</DeboraMorganMode>