Clean code
This commit is contained in:
parent
4470192c70
commit
d50e18ab6d
3 changed files with 55 additions and 50 deletions
|
@ -78,3 +78,53 @@ func TimeSince(then time.Time) string {
|
|||
}
|
||||
return then.String()
|
||||
}
|
||||
|
||||
// Subtract deals with subtraction of all types of number.
|
||||
func Subtract(left interface{}, right interface{}) interface{} {
|
||||
var rleft, rright int64
|
||||
var fleft, fright float64
|
||||
var isInt bool = true
|
||||
switch left.(type) {
|
||||
case int:
|
||||
rleft = int64(left.(int))
|
||||
case int8:
|
||||
rleft = int64(left.(int8))
|
||||
case int16:
|
||||
rleft = int64(left.(int16))
|
||||
case int32:
|
||||
rleft = int64(left.(int32))
|
||||
case int64:
|
||||
rleft = left.(int64)
|
||||
case float32:
|
||||
fleft = float64(left.(float32))
|
||||
isInt = false
|
||||
case float64:
|
||||
fleft = left.(float64)
|
||||
isInt = false
|
||||
}
|
||||
|
||||
switch right.(type) {
|
||||
case int:
|
||||
rright = int64(right.(int))
|
||||
case int8:
|
||||
rright = int64(right.(int8))
|
||||
case int16:
|
||||
rright = int64(right.(int16))
|
||||
case int32:
|
||||
rright = int64(right.(int32))
|
||||
case int64:
|
||||
rright = right.(int64)
|
||||
case float32:
|
||||
fright = float64(left.(float32))
|
||||
isInt = false
|
||||
case float64:
|
||||
fleft = left.(float64)
|
||||
isInt = false
|
||||
}
|
||||
|
||||
if isInt {
|
||||
return rleft - rright
|
||||
} else {
|
||||
return fleft + float64(rleft) - (fright + float64(rright))
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue