Funktionen und Werte zurückgegeben werden

Ich bin ein Anfänger in der Swift so einige Sachen nicht ganz klar ist mir noch nicht. Ich hoffe, jemand würde erklären, dies für mich:

//Creating Type Properties and Type Methods
class BankAccount {

    //stored properties
    let accountNumber: Int
    let routingCode = 12345678
    var balance: Double
    class var interestRate: Float {
        return 2.0
    }

    init(num: Int, initialBalance: Double) {
        accountNumber = num
        balance = initialBalance
    }

    func deposit(amount: Double) {
        balance += amount
    }

    func withdraw(amount: Double) -> Bool {
        if balance > amount {
            balance -= amount
            return true
        } else {
            println("Insufficient funds")
            return false
        }
    }

    class func example() {
        //Type methods CANNOT access instance data
        println("Interest rate is \(interestRate)")
    }
} 

var firstAccount =  BankAccount(num: 11221122, initialBalance: 1000.0)
var secondAccount = BankAccount(num: 22113322, initialBalance: 4543.54)

BankAccount.interestRate

firstAccount.deposit(520)

Also das ist der code. Ich Frage mich, warum deposit() nicht über ein return-Pfeil und die return-Schlüsselwort und withdraw() tut. Wann nutze ich einen zurück-Pfeil, in welchen Situationen, ist es eine Regel oder so etwas? Ich verstehe es nicht.

Zusätzlich...
Jeder ist so freundlich mit Ihren Antworten, es wird immer klarer für mich.

Im Anfang dieses Tutorials ist die Praxis-code für Funktionen

//Function that return values
func myFunction() -> String {
    returnHello}

Ich mir vorstellen, dieser Rückgabewert wird hier nicht benötigt, aber im tutorial Sie wollte uns zeigen, dass es existiert, habe ich Recht?

Außerdem kann ich einen "Fehler" und ein return-Pfeil und Wert in meinem Depot-Funktion irgendwie? Ich habe versucht mit diesem:

func deposit(amount : Double) -> Double {
    return balance += amount
}

... aber es erzeugt Fehler.

Ich sah advanced coding in meiner letzten Firma, die Sie schufen, online-shop mit vielen custom und coolen features und alle code war voll von zurück-Pfeile. Das verwirrt mich, und ich dachte, dass es ein Standard für die Herstellung von Methoden/Funktionen in OOP.

Zusätzliche Frage!
Ich wollte spielen mit Funktionen, so möchte ich eine Funktion erstellen transferFunds (), welche den Transfer von Geld von einem Konto auf ein anderes. Ich machte funktionieren wie diese

func transferFunds(firstAcc : Int, secondAcc : Int, funds : Double) {
     //magic part
     if firstAcc == firstAccount.accountNumber {
          firstAccount.balance -= funds
     } else {
         println("Invalid account number! Try again.")
     }

     if secondAcc == secondAccount.accountNumber {
          secondAccount.balance += funds
     } else {
         println("Invalid account number! Try again.")
     }
}

Dies ist ein einfacher code, der mir in den Sinn kam, aber ich weiß, es ist vielleicht auch dumm. Ich weiß, es sollte ein code, der überprüft, ob es genug Mittel im ersten Konto, von dem aus ich nehme das Geld, aber okay... Lets play mit diesem.
Ich möchte angeben accountNumbers oder etwas anderes in den Parametern innerhalb der Funktion transferFunds() und ich will eine Suche über alle Objekte/Kunden in meiner imaginären bank, die Klasse BankAccount um die zu finden und dann Geld überweisen. Ich weiß nicht, ob ich mein problem beschrieben korrekt, aber ich hoffe, Sie verstehen, was ich tun will. Kann mir jemand helfen, bitte?

  • Dies ist nicht eine Rasche Frage als solche, sondern eher um eine Allgemeine Frage der Programmierung. Ich kann mir vorstellen, dass er nie benutzt Swift, der Pfeil zeigt auf einen Rückgabetyp. In diesem Fall withdraw gibt einen booleschen Wert zurück, um zu sagen, ob oder ob nicht zurückziehen, war die operation erfolgreich ist oder nicht. Sie könnte auch das gleiche tun für Einzahlung, geben einen booleschen Wert zurück, um zu sagen, ob die Einzahlung erfolgreich war. Es gibt keine harte und schnelle Regel für diese, es ist etwas, das kommt mit der Praxis.
  • Ich bin so froh, dass ich begann, auf Pascal, wenn die Funktion ohne return-Typ wurden als Prozeduren bezeichnet.
  • Der Rückgabetyp "String" benötigt. Müssen Sie deklarieren den Typ der variable gibt, die in der Funktion. Wie beim letzten Beispiel, Sie können nicht zurück, bevor der Ausdruck, der verwendet den '+ = ' - operator. Sie müssen zum hinzufügen einer neuen Zeile: return balance, oder vielleicht in einer Zeile: zurück ++Gleichgewicht (in einigen Programmiersprachen). Achten Sie darauf, dass diese Art von Methode verstößt gegen die CQS-Prinzip, wie beschrieben in meiner Antwort, denn es ist sowohl ein Befehl und Abfrage.
  • A-ha! moment. Danke. func einzahlen(Betrag : Double) -> Doppelte { balance += amount return balance } und es funktioniert. Ist es ein Fehler zu schreiben, die Funktionen wie, dass die ganze Zeit?
  • Sie willkommen. Es ist nicht ein Fehler, sondern kann dazu führen, Mehrdeutigkeit, wenn Sie arbeiten mit anderen Entwicklern. Sollten Sie einen standard für alle, um mit zu gehen. Wenn Sie einzahlen möchten, Sie wollen eine Funktion, um es zu tun, und vergessen Sie es. Immer das Ergebnis zurück ist nicht die Rolle, die der Befehl. Er kann verwirren: "Warum hat es einen Wert zurückgeben?', "Ich habe gerade gesagt, dass es um die Kaution!'. Es ist besser voneinander zu trennen. Wenn jemand will, um das Gleichgewicht besser getBalance () - Methode [=query]. Denn manchmal muss man die Logik in immer die balance. Wie Gebühren und etc.So, Sie besser haben an einem zentralen Ort.
  • Ich denke ich bekomme es jetzt, gut 99%. Sehr sehr sehr viel Dank. Ich werde in paar bei der " making apps so ist dies ein guter Tipp.
  • Ich bin froh, das zu hören. Immer Fragen, Sie sind auf einem großen Weg. Durch die Möglichkeit, auf Stackoverflow ist es besser, Sie wählen die Antwort Ihnen geholfen, die meisten mit dem V weiter, damit andere es finden können und schneller lernen.
  • Alle haben mir geholfen, aber ich wählte mein fave. Danke für den Tipp! Hoffe, jemand, Anfänger wie mich, wird Sie von dieser Frage. Jetzt kann ich vorwärts zu bewegen!

InformationsquelleAutor Antonija | 2015-06-23
Schreibe einen Kommentar