swift timing
let funcs:[String:(Int) -> Int] = [
"add":{(x:Int) in return x + 2},
"sub":{(x:Int) in return x - 2},
"mul":{(x:Int) in return x * 2}
]
func arth(x:Int, cmd:String) -> Int {
switch cmd {
case "add":
return x + 2
case "sub":
return x - 2
case "mul":
return x * 2
default:
return 0
}
}
let s = NSDate()
funcs["add"]!(2)
let a = NSDate().timeIntervalSince(s as Date)
//0.001639008522033691
let b = NSDate()
arth(x:2, cmd:"sub")
let c = NSDate().timeIntervalSince(b as Date)
//0.0004680156707763672
//switch statements are 4-5 of times faster than dictionary lookup