golang github.com/spf13/cast 库识别不了 自定义数据类型

这篇具有很好参考价值的文章主要介绍了golang github.com/spf13/cast 库识别不了 自定义数据类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以下代码运行不会是10,而是返回 0  

package main

import (
	"fmt"
	"github.com/spf13/cast"
)

type UserNum int32

func main() {
	var uNum UserNum
	uNum = 10
	uNumint64 := cast.ToInt64(uNum)
	uNumint64E, err := cast.ToInt64E(uNum)
	fmt.Println(uNumint64)
	fmt.Println(uNumint64E, err)
}

看一下源码,ToInt64()直接屏蔽了错误,可以使用 ToInt64E 这种,返回带错误的函数文章来源地址https://www.toymoban.com/news/detail-664373.html

// ToInt64 casts an interface to an int64 type.
func ToInt64(i interface{}) int64 {
	v, _ := ToInt64E(i)
	return v
}

// ToInt64E casts an interface to an int64 type.
func ToInt64E(i interface{}) (int64, error) {
	i = indirect(i)

	intv, ok := toInt(i)
	if ok {
		return int64(intv), nil
	}

	switch s := i.(type) {
	case int64:
		return s, nil
	case int32:
		return int64(s), nil
	case int16:
		return int64(s), nil
	case int8:
		return int64(s), nil
	case uint:
		return int64(s), nil
	case uint64:
		return int64(s), nil
	case uint32:
		return int64(s), nil
	case uint16:
		return int64(s), nil
	case uint8:
		return int64(s), nil
	case float64:
		return int64(s), nil
	case float32:
		return int64(s), nil
	case string:
		v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)
		if err == nil {
			return v, nil
		}
		return 0, fmt.Errorf("unable to cast %#v of type %T to int64", i, i)
	case json.Number:
		return ToInt64E(string(s))
	case bool:
		if s {
			return 1, nil
		}
		return 0, nil
	case nil:
		return 0, nil
	default:
		return 0, fmt.Errorf("unable to cast %#v of type %T to int64", i, i)
	}
}

到了这里,关于golang github.com/spf13/cast 库识别不了 自定义数据类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java.util.LinkedHashMap cannot be cast to com.alibaba.fastjson.JSONObject

    接收postman 发送的请求,请求参数是 JSONObject 格式,需要获取其中的info对象 public void xxxxxx(@RequestBody JSONObject map) { // 先将info转成json格式的字符串,再转为JSON对象 JSONObject info = JSON.parseObject(JSON.toJSONString(map.get(“info”))); }

    2024年02月14日
    浏览(35)
  • 02-舞动数据类型:Golang 类型定义的奇妙之旅

    📃个人主页:个人主页 🔥系列专栏:Golang基础 💬Go(又称Golang)是由Google开发的开源编程语言。它结合了静态类型的安全性和动态语言的灵活性,拥有高效的并发编程能力和简洁的语法。Go被设计用于构建可扩展、高性能的软件系统,具有优秀的内存管理和快速的编译速度

    2024年02月09日
    浏览(46)
  • 二、GoLang输出HelloWorld、变量定义、数据类型的转换

    go语言中,想要输出内容到控制台,package必须是main,包括方法名也必须是main, go语言输出的语法是 fmt 库。 Go语言的基本类型有: boolean:布尔类型 true / false string :字符串类型 数值型: int8:有符号8位整型(-128到127)长度 int16:有符号16位整型(-32768到32767)长度 int32:有

    2024年02月10日
    浏览(48)
  • mac识别不了硬盘怎么回事 mac识别不了硬盘怎么解决

    许多mac用户在使用电脑过程中,会发现插上的移动硬盘,出现无法被电脑正常识别的问题,连接到电脑上灯会亮,但是电脑里不显示,连接到别的电脑上却没问题。小编今天就帮助大家解决mac识别不了硬盘怎么回事,mac识别不了硬盘怎么解决。   一、mac识别不了硬盘怎么回事

    2024年02月10日
    浏览(52)
  • Cause: com.github.pagehelper.PageException: 无法自动获取数据库类型,请通过 helperDialect 参数指定! kingbase数据库

    目录 1.业务背景 2.解决方案 3.相关资料         现在政府项目要求国产化,数据库使用的是kingbase,在使用mybatis 分页插件的时候,遇到Cause: com.github.pagehelper.PageException: 无法自动获取数据库类型,请通过 helperDialect 参数指定! kingbase数据库。         方法很简单,人家也告诉

    2024年02月03日
    浏览(40)
  • SPF9139全力适配ios16与鸿蒙3.0,超实用数据提取、分析、恢复能力UP!

    ​ 如今,群聊已成为人们必不可少的沟通窗口 家人群,好友群,班级群 粉丝群,交友群,工作群 …… 各类群聊铺天盖地般涌来的同时 也有一些群聊沦为了 赌博、传播淫秽视频 、发表不当言论 等违法犯罪行为滋生之地 与此同时 嫌疑人手机中的群消息往往十分琐碎繁杂 办

    2024年02月13日
    浏览(41)
  • github访问不了问题

    git clone github上的项目的时候,不是访问不了,就是克隆过程被中断了 最近找到一个代理,从代理那里clone而不是github上 GitHub代理 – 初果编程

    2024年02月04日
    浏览(62)
  • 二、GoLang输出HelloWorld、基本数据类型、变量常量定义、基本类型转换

    go语言中,想要输出内容到控制台,package必须是main,包括方法名也必须是main, go语言输出的语法是 fmt 库。 Go语言的基本类型有: boolean:布尔类型 true / false string :字符串类型 数值型: int8:有符号8位整型(-128到127)长度 int16:有符号16位整型(-32768到32767)长度 int32:有

    2024年02月09日
    浏览(57)
  • 解决github访问不了的方法

    1、打开网站http://tool.chinaz.com/dns/ ,在A类型的查询中输入 github.com,找到最快访问的ip地址,并复制下来。 2、修改系统文件的hosts文件 进入C:WindowsSystem32driversetchosts,在最后添加: 20.205.243.166 github.com 3、刷新 DNS ipconfig/flushdns 4、最后重新打开浏览器访问github即可 注:刷新

    2024年02月11日
    浏览(72)
  • 解决国内访问不了github的问题

    很多小伙伴因为某种原因有时候访问不了github,这里记录一下解决办法。 第一步:通过DNS查询快速找到github对应国内的真实IP地址。 DNS网站查询:Dns检测|Dns查询 - 站长工具 点击进入后输入github.com后会找到真实IP如图: 第二步:修改你hosts文件,在文件中写一个IP地址如图:

    2024年02月11日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包