ismon
Lieutenant
- Registriert
- Dez. 2006
- Beiträge
- 722
Hallo zusammen,
ich versuche gerade etwas Swift zu lernen.
Dazu lesen ich das Buch https://kofler.info/buecher/swift/.
In einem Beispiel geht das darum eine Klasse zu definieren die das Protokoll Hashable umsetzt.
Diese Protokoll setzt das Equatable Protokoll voraus. D.H. in meiner Klassen Person muss auch diese umgesetzt werden.
Equatable vordert eine Überladung des == Operator.
Mein Problem ist nun, dass ich das Beispiel wie im Buch umgesetzt habe aber ich beim Überlagen der Funktion == immer einen Compiler Fehler bekomme.
Hier der Code aus dem Beispiel:
Es kommt der Fehler: Consecutive Declaration in a line must be separated by ";"
Er wird an der Stellen func ==( angezeigt
Hat jemand eine Idee?
gruß
Simon
ich versuche gerade etwas Swift zu lernen.
Dazu lesen ich das Buch https://kofler.info/buecher/swift/.
In einem Beispiel geht das darum eine Klasse zu definieren die das Protokoll Hashable umsetzt.
Diese Protokoll setzt das Equatable Protokoll voraus. D.H. in meiner Klassen Person muss auch diese umgesetzt werden.
Equatable vordert eine Überladung des == Operator.
Mein Problem ist nun, dass ich das Beispiel wie im Buch umgesetzt habe aber ich beim Überlagen der Funktion == immer einen Compiler Fehler bekomme.
Hier der Code aus dem Beispiel:
Code:
import Foundation
class Person : CustomStringConvertible, Hashable {
var name:String
var tel = [ String ]()
var mail = [ String ]()
init (_ name:String) {
self.name=name
}
var description:String {
let telnr = tel.joinWithSeparator (" ")
let email = mail.joinWithSeparator (" ")
return "\(name): \(telnr); \(email)"
}
var hashValue:Int {
var hash = name.hashValue
for t in tel { hash ^= (t.hashValue &* 13) }
for m in mail { hash ^= (m.hashValue &* 17) }
return hash
}
func ==(lhs:Person, rhs:Person) -> Bool {
return lhs.name == rhs.name && lhs.tel == rhs.tel && lhs.mail == rhs.mail
}
}
var p = Person("Hermann Huber")
p.tel.append("0123 5325345")
p.mail.append("hermann@huber.com")
print (p)
Es kommt der Fehler: Consecutive Declaration in a line must be separated by ";"
Er wird an der Stellen func ==( angezeigt
Hat jemand eine Idee?
gruß
Simon
Zuletzt bearbeitet: