当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

cvt

Go 任意数据类型安全转换
授权协议 MIT
开发语言 Google Go
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 蒲功
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

cvt 是一个简单、安全、高效的转换任意数据类型的 Go 语言工具包,支持自定义类型、提取结构体字段和值。

安装

go get -u github.com/shockerli/cvt

使用

支持 error

 E 结尾的方法 __E(): 当转换失败时会返回错误

cvt.IntE("12")          // 12, nil
cvt.Float64E("12.34")   // 12.34, nil
cvt.StringE(12.34)      // "12.34", nil
cvt.BoolE("false")      // false, nil

自定义类型、指针类型

自动解引用,并找到基本类型,完全支持自定义类型的转换

type Name string

var name Name = "jioby"

cvt.StringE(name)       // jioby, nil
cvt.StringE(&name)      // jioby, nil

忽略 error

名称不以 E 结尾的方法,如果转换失败,不会返回错误,会返回零值

cvt.Int("12")           // 12(success)
cvt.Int(struct{}{})     // 0(failed)

默认值

如果转换失败,返回默认值

cvt.Int(struct{}{}, 12)         // 12
cvt.Float("hello", 12.34)       // 12.34

更多示例

上千个单元测试用例,覆盖率近100%,所有示例可通过单元测试了解:*_test.go

API

bool

  • Bool
  • BoolE

int

  • Int
  • IntE
  • Int8
  • Int8E
  • Int16
  • Int16E
  • Int32
  • Int32E
  • Int64
  • Int64E
  • Uint
  • UintE
  • Uint8
  • Uint8E
  • Uint16
  • Uint16E
  • Uint32
  • Uint32E
  • Uint64
  • Uint64E

string

  • String
  • StringE

float

  • Float32
  • Float32E
  • Float64
  • Float64E

time

  • Time
  • TimeE

slice

  • ColumnsE: 类似于 PHP 中的 array_columnFieldE 函数的切片版本,返回 []interface{}
  • FieldE: 取 map  struct 的字段值,返回 interface{}
  • KeysE: 取 map 的键名,返回 []interface{}
  • Slice / SliceE: 转换成 []interface{}
  • SliceIntE: 转换成 []int
  • SliceInt64E: 转换成 []int64
  • SliceFloat64E: 转换成 []float64
  • SliceStringE: 转换成 []string
  • 一、名词解释: 电容式电压互感器(Capacitor Voltage Transformer)缩写为CVT。 电压互感器 (power transformer)缩写为 PT。 电流互感器(current transformer)缩写为CT。 无论是电磁型、电容型的电压互感器,都是将高电压变为低电压,供测量、控制、保护系统使用。从原理上讲也就是一种小型的(小容量)变压器。但是还是按照规

  • # 以下是CentOS8中的实际操作记录 # 使用xrandr查看目前支持的分辨率,这里我们可以看到只有三个,且和显示器的最佳分辨率都对不上 [tinychen@tiny-studio ~]$ xrandr Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1920 x 2048 VGA-1 connected primary 102

  • 实验室的ubuntu16 在一次意外断点后分辨率就出现了无法设置分辨率的现象,只能通过cvt 设置新的分辨率模式进行调整。 直接上指令: 先用xrandr查看现在的系统支持的分辨率 用cvt增加一个新的分辨率,下面是创建一个1680x1050,刷新频率为60Hz的分辨率。 cvt 1680 1050 结果如下: 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.2

  • namke 执行后,发生错误,这个时候,不要退出来 原因是我现在编绎的是x32位的,使用的是win7 64系统  要把这个文件 替换一掉,再重新namke命令。 https://download.csdn.net/download/aasmfox/85786032 link /NOLOGO /DYNAMICBASE /NXCOMPAT /BASE:0x65000000 /INCRE

 相关资料
  • 我试图理解Dataset和data frame之间的区别,并找到了以下有用的链接,但我无法理解类型安全是什么意思? DataFrame(在Spark 2.0中,即DataSet[Row])与Spark中RDD之间的差异

  • 本文向大家介绍全面了解JavaScript的数据类型转换,包括了全面了解JavaScript的数据类型转换的使用技巧和注意事项,需要的朋友参考一下  首先,由于JavaScript是弱类型语言(弱类型的语言的东西没有明显的类型,他能随着环境的不同,自动变换类型而强类型则没这样的规定,不同类型间的操作有严格定义,只有相同类型的变量才能操作,虽然系统也有一定的默认转换,当绝没有弱类型那么随便,也就是说

  • JavaScript是一种动态类型语言,变量是没有类型的,可以随时赋予任意值。但是,数据本身和各种运算是有类型的,因此运算时变量需要转换类型。大多数情况下,这种数据类型转换是自动的,但是有时也需要手动强制转换。 强制转换 Number函数:强制转换成数值 String函数:强制转换成字符串 Boolean函数:强制转换成布尔值 自动转换 自动转换为布尔值 自动转换为字符串 自动转换为数值 小结 加

  • 我有一个通用类。它看起来像这样: 显然,conevertdatajsonstring方法仅在字符串类型为T时调用。但有一个警告: 类型安全:未选中从字符串转换为T 有没有一种方法可以在不使用SuppressWarnings的情况下解决此问题: @抑制警告(“未选中”) 方法之前?

  • 问题内容: 我的数据库是Postgres8。我需要将数据类型转换为另一个。这意味着column数据类型之一是并且需要在语句中将其与Postgres一起转换。 当前,我获取字符串值并将其转换为Java语言。 有什么办法吗?示例代码将不胜感激。 问题答案: cast(varchar_col AS int) – SQL standard 要么 这些语法变体在 任何地方 (几乎)都有效。第二种在特殊情况下

  • 主要内容:1、隐式类型转换,2、显式类型转换数据类型转换就是将一种类型的数据转换为另一种类型,在 C# 中有两种形式的类型转换方式,分别是隐式类型转换和显示类型转换,下面就来详细介绍一下。 1、隐式类型转换 隐式类型转换是由 C# 以类型安全的方式执行的,转换的过程中不会导致数据丢失,例如从较小的整数类型(例如 int)转换到较大的整数类型(例如 long),从派生类转换为基类。 隐式转换不需要我们编写额外的代码,下例中演示了如何使用隐式类

  • 虽然 Python 是弱类型编程语言,不需要像 Java 或 C 语言那样还要在使用变量前声明变量的类型,但在一些特定场景中,仍然需要用到类型转换。 比如说,我们想通过使用 print() 函数输出信息“您的身高:”以及浮点类型 height 的值,如果在交互式解释器中执行如下代码: >>> height = 70.0 >>> print("您的身高"+height) Traceback (mos