对不起,我承认粗略的标题,但我正在参加teamtreehouse.com上的Swift课程,并且我做了一个“代码挑战”,重新描述了面向对象的Swift课程。无论如何,我被提供了几个类,我的目标是继承Machine类并重写实际执行某些操作的方法,这是我做的。我通过了这个挑战,但很好奇,如果在传入一个参数之后我可以实际打印这个函数的最终结果。如何在Swift中打印此方法的最终结果?
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)
所以,最后的3行是我尝试进行实际管理这一点,但在控制台中,行“点”打印,而不是方法的实际效果正在制定。如果可能,我希望以坐标的形式打印结果。对不起,可能是错误的代码,我只是一个初学者。提前致谢!
嗯,我还是设法想出一个办法去除Point类作为一个整体,改变存储的属性位置类型得到它的打印结果到'(x:Int,y:Int)',然后对init方法做同样的事情,但我仍然很好奇,是否仍然可以使用Point类型 –