我是第一次玩Swift,我不明白为什么这不起作用。任何帮助都会很棒!
我收到错误无法找到' - '接受提供的参数
表示 self.health = self.health - 金额
的行class human {
var name:String
var height:Integer
var hairColor:String
var health:Integer
init(name:String, height:Integer, hairColor:String) {
self.name = name
self.height = height
self.hairColor = hairColor
self.health = 100
}
func applyDamage(amount:Integer) -> Integer{
self.health = self.health - amount
return self.health
}
}
谢谢!
答案 0 :(得分:9)
使用Int
,而不是Integer
。
Integer
是一种协议,而不是类型。
答案 1 :(得分:3)
为了解释实际的错误消息,Swift尝试将“ - ”运算符应用于整数和整数,但是您没有超载' - '运营商。这就是错误措辞原因。 ' - '运算符适用于 Int 和 Int ,这显然是您在此实例中的意图,因此您只需要使用 Int < / strong>而不是整数
答案 2 :(得分:2)
对于它的价值,您可能想要
self.health -= amount
而不是
self.health = self.health - amount
更加惯用
答案 3 :(得分:0)
我认为您可能打算使用Int而不是Integer。这段代码工作正常:
class human {
var name:String
var height:Int
var hairColor:String
var health:Int
init(name:String, height:Int, hairColor:String) {
self.name = name
self.height = height
self.hairColor = hairColor
self.health = 100
}
func applyDamage(amount:Int) -> Int{
self.health = self.health - amount
return self.health
}
}