Swift 如何将对象/类作为函数传递';s参数

Swift 如何将对象/类作为函数传递';s参数,swift,Swift,假设我有一个cat类,我做了两个实例。我希望猫可以互相攻击 class ninjaCat { var health : Double = 100.00 var attack = Double() init(attack : Double){ self.attack = attack } func thunderClaw(otherCat : ninjaCat){ health = otherCat.health otherCa

假设我有一个cat类,我做了两个实例。我希望猫可以互相攻击

class ninjaCat {
   var health : Double = 100.00
   var attack = Double()

   init(attack : Double){
      self.attack = attack
   }

   func thunderClaw(otherCat : ninjaCat){
      health = otherCat.health
      otherCat.health = health - self.attack
   }
}

var NinjaCat1 = ninjaCat(10.60)
var NinjaCat2 = ninjaCat(20.15)

NinjaCat1.thunderClaw(NinjaCat2)

是否可以将类对象作为函数参数传递?

这确实是可能的。但是,您应该检查代码,因为您使用攻击猫的当前寿命而不是目标猫的当前寿命来计算剩余寿命:

func thunderClaw(otherCat : ninjaCat){
   otherCat.health = health - self.attack
}
应该是

func thunderClaw(otherCat : ninjaCat){
   otherCat.health = otherCat.health - self.attack
}
或者干脆

func thunderClaw(otherCat : ninjaCat){
   otherCat.health -= self.attack
}

运行此代码时,您看到了什么错误?当您将在
初始化中立即覆盖它时(
self.attack=attack
),为什么要给
一个静态初始值设定项(
=Double()
)?