ςΩετ ࣮ࡍͷίʔυ protocol Pokemon { var name: String { get } var ability: Ability { get } var level: Int { get set } var health: Int { get set } func displayStatus() func doAbility(to pokemon: T) } Protocol Ωʔϫʔυ͔Β࢝·Δ
ςΩετ ࣮ࡍͷίʔυ protocol Pokemon { var name: String { get } var ability: Ability { get } var level: Int { get set } var health: Int { get set } func displayStatus() func doAbility(to pokemon: T) } Protocol Ωʔϫʔυ͔Β࢝·Δ ͜͜ඞͣvarͰఆٛ͢Δ
ςΩετ ࣮ࡍͷίʔυ protocol Pokemon { var name: String { get } var ability: Ability { get } var level: Int { get set } var health: Int { get set } func displayStatus() func doAbility(to pokemon: T) } Protocol Ωʔϫʔυ͔Β࢝·Δ ͜͜ඞͣvarͰఆٛ͢Δ ۩ମతͳΛࢦఆ͢ΔΘΓʹ ಡΈॻ͖ͷઃఆΛ͢Δ ͜Ε get ͚ͩͳͷͰಡΈࠐΈઐ༻
ςΩετ ࣮ࡍͷίʔυ protocol Pokemon { var name: String { get } var ability: Ability { get } var level: Int { get set } var health: Int { get set } func displayStatus() func doAbility(to pokemon: T) } Protocol Ωʔϫʔυ͔Β࢝·Δ ͜͜ඞͣvarͰఆٛ͢Δ ۩ମతͳΛࢦఆ͢ΔΘΓʹ ಡΈॻ͖ͷઃఆΛ͢Δ ͜Ε get ͚ͩͳͷͰಡΈࠐΈઐ༻ ͪ͜Β get set ྆ํͷهड़͕͋ΔͷͰ ಡΈॻ͖Մೳ
ςΩετ ࣮ࡍͷίʔυ(ఆٛ) protocol Pokemon { var name: String { get } var ability: Ability { get } var level: Int { get set } var health: Int { get set } func displayStatus() func doAbility(to pokemon: T) } Protocol Ωʔϫʔυ͔Β࢝·Δ ͜͜ඞͣvarͰఆٛ͢Δ ۩ମతͳΛࢦఆ͢ΔΘΓʹ ಡΈॻ͖ͷઃఆΛ͢Δ ͜Ε get ͚ͩͳͷͰಡΈࠐΈઐ༻ ͪ͜Β get set ྆ํͷهड़͕͋ΔͷͰ ಡΈॻ͖Մೳ ϝιου໊લͱҾɺΓ͚ͩΛهड़͠۩ମతͳ࣮ॻ͔ͳ͍
ςΩετ ࣮ࡍͷίʔυ(࠾༻) struct Pikachu: Pokemon { let name: String let ability: Ability var level: Int var health: Int func displayStatus() { print("name: \(self.name)") print("Lv: \(self.level)") print("HP: \(self.health)") } func doAbility(to pokemon: T) where T : Pokemon { // to be continue... } } ࠾༻͍ͨ͠ProtocolΛࢦఆ͢Δ
ςΩετ ࣮ࡍͷίʔυ(࠾༻) struct Pikachu: Pokemon { let name: String let ability: Ability var level: Int var health: Int func displayStatus() { print("name: \(self.name)") print("Lv: \(self.level)") print("HP: \(self.health)") } func doAbility(to pokemon: T) where T : Pokemon { // to be continue... } } ࠾༻͍ͨ͠ProtocolΛࢦఆ͢Δ ͜ͷೋͭఆٛͷ࣌ʹ get ͚ͩͩͬͨͷͰ let Ͱఆͱͯ͠ఆٛ(Read only)
ςΩετ ࣮ࡍͷίʔυ(࠾༻) struct Pikachu: Pokemon { let name: String let ability: Ability var level: Int var health: Int func displayStatus() { print("name: \(self.name)") print("Lv: \(self.level)") print("HP: \(self.health)") } func doAbility(to pokemon: T) where T : Pokemon { // to be continue... } } ࠾༻͍ͨ͠ProtocolΛࢦఆ͢Δ ͜ͷೋͭఆٛͷ࣌ʹ get ͚ͩͩͬͨͷͰ let Ͱఆͱͯ͠ఆٛ(Read only) ͜ͷೋͭఆٛͷ࣌ʹ get set ྆ํࢦఆͨ͠ͷͰ var Ͱมͱͯ͠ఆٛ(Read/Write)
ςΩετ ࣮ࡍͷίʔυ(࠾༻) struct Pikachu: Pokemon { let name: String let ability: Ability var level: Int var health: Int func displayStatus() { print("name: \(self.name)") print("Lv: \(self.level)") print("HP: \(self.health)") } func doAbility(to pokemon: T) where T : Pokemon { // to be continue... } } ࠾༻͍ͨ͠ProtocolΛࢦఆ͢Δ ͜ͷೋͭఆٛͷ࣌ʹ get ͚ͩͩͬͨͷͰ let Ͱఆͱͯ͠ఆٛ(Read only) ͜ͷೋͭఆٛͷ࣌ʹ get set ྆ํࢦఆͨ͠ͷͰ var Ͱมͱͯ͠ఆٛ(Read/Write) ϝιουఆٛͯ͋͠ΔҾΓΛهड़ͯ͠தΛ࣮͢Δ
ςΩετ ࣮ࡍͷίʔυ(·ͱΊ) // Protocolఆٛ protocol Pokemon { var name: String { get } var ability: Ability { get } var level: Int { get set } var health: Int { get set } func displayStatus() func doAbility(to pokemon: T) } // Protocol࠾༻ struct Pikachu: Pokemon { let name: String let ability: Ability var level: Int var health: Int func displayStatus() { print("name: \(self.name)") print("Lv: \(self.level)") print("HP: \(self.health)") } func doAbility(to pokemon: T) where T : Pokemon { // to be continue... } }