Swiftのenumには関数が定義できるようなので、ちょっと試してみた。
Weekday.swift
enum Weekday {
case Sun, Mon, Tue, Wed, Thu, Fri, Sat
func isHoliday() -> Bool {
switch(self){
case Sun, Sat:
return true
default:
return false
}
}
func isWorkday() -> Bool {
return !self.isHoliday()
}
}
var day : Weekday = .Sun
var p = day.isHoliday()
println(p) // -> true
p = day.isWorkday()
println(p) // -> false
day = Weekday.Mon // あえて、Weekday. をつけてみた。
p = day.isHoliday()
println(p) // -> false
p = day.isWorkday()
println(p) // -> true
println(Weekday.Sat.isHoliday()) // -> true
println(Weekday.Sat.isWorkday()) // -> false
println(Weekday.Wed.isHoliday()) // -> false
println(Weekday.Wed.isWorkday()) // -> true
// println(.Wed.isHoliday()) // <- こうは書けない。
結構おもしろい。