I want convert interface value to number, but when interface is number or number string, it will not work, I do not know why we can't convert by this way?
package main
import (
"encoding/json"
"fmt"
"reflect"
)
func main() {
number := 10
strNumber := "10"
test(number)
test(strNumber)
}
func test(i interface{}) {
strNum, ok := i.(json.Number)
fmt.Println(strNum, ok, reflect.TypeOf(i))
}
It will produce result like this:
false int
false string