Swift 프로토콜 지향 프로그래밍
class Hotsix {
var volume : Double!
var caffeine : Double!
var temperature : Double!
var canSize : Double!
var description : String!
init(volume : Double, caffeine : Double, temperature : Double) {
self.volume = volume
self.caffeine = caffeine
self.temperature = temperature
self.description = "Jolt Energy Drink"
self.canSize = 24
}
func drinking(amount : Double){
volume = amount - 1
}
func temperatureChange(change : Double){
temperature = change + 1
}
}
class Cooler {
var temprature : Double!
var cansOfHotSix = [Hotsix]()
var maxCans : Int!
init(temprature : Double, maxCans : Int) {
self.temprature = temprature
self.maxCans = maxCans
}
func addHotSix(hotSix : Hotsix)-> Bool{
if cansOfHotSix.count < maxCans {
cansOfHotSix.append(hotSix)
return true
}else {
return false
}
}
func removeHoxSix() -> Hotsix? {
if cansOfHotSix.count > 0 {
return cansOfHotSix.removeFirst()
}else {
return nil
}
}
}
var cooler = Cooler(temprature: 38.0, maxCans: 12)
for _ in 0...5{
let can = Hotsix(volume: 23.5, caffeine: 280, temperature: 45)
let _ = cooler.addHotSix(hotSix: can)
}
let hotSix = cooler.removeHoxSix()
hotSix?.drinking(amount: 5)
print("HotSix Left in can : \((hotSix?.volume)!)")