Add handle for int Issue 314

This commit is contained in:
tsachi nimni 2020-01-01 13:55:22 +02:00
parent 27604289f4
commit 339cc3a12d

View File

@ -1,8 +1,7 @@
package yqlib package yqlib
import ( import "strconv"
"strconv" import "strings"
)
type ValueParser interface { type ValueParser interface {
ParseValue(argument string) interface{} ParseValue(argument string) interface{}
@ -17,11 +16,19 @@ func NewValueParser() ValueParser {
func (v *valueParser) ParseValue(argument string) interface{} { func (v *valueParser) ParseValue(argument string) interface{} {
var value, err interface{} var value, err interface{}
var inQuotes = len(argument) > 0 && argument[0] == '"' var inQuotes = len(argument) > 0 && argument[0] == '"'
var isDot = strings.Contains(argument, ".")
if !inQuotes { if !inQuotes {
if isDot {
value, err = strconv.ParseFloat(argument, 64) value, err = strconv.ParseFloat(argument, 64)
if err == nil { if err == nil {
return value return value
} }
} else {
value, err = strconv.ParseInt(argument, 10, 64)
if err == nil {
return value
}
}
value, err = strconv.ParseBool(argument) value, err = strconv.ParseBool(argument)
if err == nil { if err == nil {
return value return value