Entschuldigung für den zugegebenermaßen groben Titel, aber ich nehme einen Kurs für Swift auf teamtreehouse.com, und ich habe eine "Code Challenge" gemacht, die den Object-Oriented Swift-Kurs rekapituliert. Wie auch immer, ich wurde ein paar Klassen zur Verfügung gestellt und mein Ziel war es, die Machine-Klasse zu unterklassifizieren und die Methode zu überschreiben, um tatsächlich etwas zu tun, was ich tat. Ich bestand die Herausforderung, war aber neugierig, ob ich tatsächlich das Endergebnis dieser Funktion nach dem Eingeben eines Parameters drucken könnte.Wie kann ich das Endergebnis dieser Methode in Swift drucken?
class Point {
var x: Int
var y: Int
init(x: Int, y: Int) {
self.x = x
self.y = y
}
}
class Machine {
var location: Point
init() {
self.location = Point(x: 0, y: 0)
}
func move(_ direction: String) {
print("Do nothing! I'm a machine!")
}
}
// Enter your code below
class Robot: Machine {
override func move(_ direction: String) {
switch direction {
case "Up": location.y += 1
case "Down": location.y -= 1
case "Left": location.x -= 1
case "Right": location.x += 1
default: break
}
}
}
let aRobot = Robot()
aRobot.move("Up")
print(aRobot.location)
So, die letzten drei Zeilen sind mein Versuch, dies tatsächlich zu verwalten, aber in der Konsole, die Zeile „Point“ gedruckt wird und nicht das tatsächliche Ergebnis des Verfahrens in Kraft gesetzt werden. Ich möchte, dass das Ergebnis möglichst in Form von Koordinaten gedruckt wird. Sorry für den möglicherweise schlechten Code, ich bin nur ein Anfänger. Danke im Voraus!
Nun zu implementieren, ich habe es geschafft, einen Weg finden, um es um das Ergebnis zu drucken, indem Sie die Point-Klasse als Ganzes zu entfernen und die gespeicherte Eigenschaft Lokationstyp Ändern zu '(x: Int, y: Int)' und dann das gleiche für die init-Methode, aber ich bin immer noch neugierig, ist es möglich, immer noch mit der Point-Typ –