Skip to content

Use type switch #5122

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Oct 19, 2018
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions modules/base/tool.go
Original file line number Diff line number Diff line change
Expand Up @@ -441,41 +441,41 @@ func Subtract(left interface{}, right interface{}) interface{} {
var rleft, rright int64
var fleft, fright float64
var isInt = true
switch left.(type) {
switch left := left.(type) {
case int:
rleft = int64(left.(int))
rleft = int64(left)
case int8:
rleft = int64(left.(int8))
rleft = int64(left)
case int16:
rleft = int64(left.(int16))
rleft = int64(left)
case int32:
rleft = int64(left.(int32))
rleft = int64(left)
case int64:
rleft = left.(int64)
rleft = left
case float32:
fleft = float64(left.(float32))
fleft = float64(left)
isInt = false
case float64:
fleft = left.(float64)
fleft = left
isInt = false
}

switch right.(type) {
switch right := right.(type) {
case int:
rright = int64(right.(int))
rright = int64(right)
case int8:
rright = int64(right.(int8))
rright = int64(right)
case int16:
rright = int64(right.(int16))
rright = int64(right)
case int32:
rright = int64(right.(int32))
rright = int64(right)
case int64:
rright = right.(int64)
rright = right
case float32:
fright = float64(right.(float32))
fright = float64(right)
isInt = false
case float64:
fright = right.(float64)
fright = right
isInt = false
}

Expand Down
16 changes: 8 additions & 8 deletions modules/base/tool_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -299,21 +299,21 @@ func TestFileSize(t *testing.T) {

func TestSubtract(t *testing.T) {
toFloat64 := func(n interface{}) float64 {
switch n.(type) {
switch n := n.(type) {
case int:
return float64(n.(int))
return float64(n)
case int8:
return float64(n.(int8))
return float64(n)
case int16:
return float64(n.(int16))
return float64(n)
case int32:
return float64(n.(int32))
return float64(n)
case int64:
return float64(n.(int64))
return float64(n)
case float32:
return float64(n.(float32))
return float64(n)
case float64:
return n.(float64)
return n
default:
return 0.0
}
Expand Down