Funktion richtig deklarieren. Hilfe

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ich habe es gerade ausprobiert. Wenn der Fehler vorhanden ist, macht Xcode gar nicht.
    Ich sitze schon seit drei Abenden an dem Thema, sogar nachts träume ich davon, aber wirklich verstehen wo das Problem sein könnte, das ist vor mir verborgen.
    Meiner Meinung nach, die Funktion ist nicht richtig deklariert, weil die Fehlermeldung da ist. ?(
  • Also der Fehler ist doch mehr als eindeutig beschrieben.

    In gewissen Fällen returned die Funktion Void (also nichts). Sie ist aber deklariert, dass sie Bool zurück gibt. Also fehlt irgendwo ein Return true oder false.

    Wenn du jetzt also einfach mal die Funktion durchspielst mit der Zahl 2017 dann sollte dir sofort auffallen was falsch ist...
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Schön, wenn der launische Post geholfen hat.^^

    Diese Unterfunktion number(Int, isDivisibeBy: Int) ist ziemlich unglücklich. Schon alleine vom Namen. Die klassische Modulo-Operation (%) reicht da. Muß man als Programmierer mal gelernt haben…

    Die Logik ist etwas unglücklich. Du machst viel zu viele Überprüfungen. Den wahrscheinlichsten Fall 'definitiv kein Schaltjahr' schmeißt man doch zuerst raus, bzw. handelt man zuerst. ;)

    Ich habe sehr lange keine Kalendersachen mehr gemacht und ich glaube auch noch nie in Swift. Meine Spielerei gerade sieht so aus:

    Quellcode

    1. func isLeapYear(_ year: Int) -> Bool {
    2. if year % 4 != 0 { return false }
    3. if year % 400 == 0 { return true }
    4. if year % 100 == 0 { return false }
    5. return true
    6. }
    Das iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!?
  • Ich bin ja auch ein Fan von „early returns“ bei fehlerhaften Parametern, aber einem Programmier-Anfänger würde ich eher raten, nur an einer Stelle die Funktion (mit Rückgabewert) zu verlassen.

    Es rächt sich sonst bei der Wartung komplexerer Prozeduren... :D

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.