Golang中判断字符串是数值型还是字符串型

为什么会有这样一个需求呢,原因是当把变量转换到JSON中的时候,如果是字符串的会使用双引号包裹

如何是数值的,就不会出现双引号


当传递数据的时候,接收方如果判断的比较严格,就会不能支持数值型两边有双引号,所以需求区分一下


在 Go 语言中,可以使用 strconv 包中的函数将字符串转换为整型类型。如果转换成功,则可以判断该字符串是整型类型。如果转换失败,则可以认为该字符串不是整型类型。

以下是一个示例代码,演示了如何将一个字符串转换为整型类型并进行判断:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "123"
    i, err := strconv.Atoi(str)
    if err != nil {
        fmt.Println("Not an integer")
    } else {
        fmt.Println("Integer:", i)
    }
}

在上面的示例中,我们使用 strconv.Atoi 函数将字符串 str 转换为整型类型。如果转换失败,则 err 变量将不为 nil,此时可以认为该字符串不是整型类型。否则,err 变量为 nil,并且整型值存储在 i 变量中。

注意,strconv.Atoi 函数只能将字符串转换为 int 类型。如果你需要将字符串转换为其他整型类型,如 int8、int16、int32、int64,则需要使用 strconv.ParseInt 函数。