GoFly框架开发中数据类型及类型转换使用说明

一、数据类型:

处理go基础数据类型如int、float、string、bool、interface{}等类型外,为了代码简洁框架封装几个常用的数据类型方便大家调用。调用方式:gf.类型

1.通用类型

类型

说明

gf.GinCtx

Gin上下文

gf.GinObj

Gin返回数据类型

gf.Var

通用的变量接口

gf.Ctx

上下文类型

go.Meta

元数据

2.Map类型

这是各种数据类型组合成的map类型,调用是gf.类型,例如:gf.Map{"name":"张三","age":25}

类型

对应原来组合类型

说明

Map

map[string]interface{}

key为string、value为interface{}的数据

MapAnyAny

map[interface{}]interface{}

key为interface{}、value为interface{}的数据

MapAnyStr

map[interface{}]string

key为interface{}、value为string的数据

MapAnyInt

map[interface{}]int

key为interface{}、value为int的数据

MapStrStr

map[string]string

key为string、value为string的数据

MapStrInt

map[string]int

key为string、value为int的数据

MapIntAny

map[int]interface{}  

key为int、value为interface{}的数据

MapIntStr

map[int]string

key为int、value为string的数据

MapIntInt

map[int]int

key为int、value为int的数据

MapAnyBool

map[interface{}]bool

key为interface{}、value为bool的数据

MapStrBool

map[string]bool    

key为string、value为bool的数据

MapIntBool

 map[int]bool

key为int、value为bool的数据

3.List类型

这种数据类型是由map类型组合的

类型

对应原来组合类型

说明

List

[]map[string]interface{}

key为string、value为interface{}的列表数据

ListAnyAny

[]map[interface{}]interface{}

key为interface{}、value为interface{}的列表数据

ListAnyStr

[]map[interface{}]string

key为interface{}、value为string的列表数据

ListAnyInt

[]map[interface{}]int

key为interface{}、value为int的列表数据

ListStrStr

[]map[string]string

key为string、value为string的列表数据

ListStrInt

[]map[string]int

key为string、value为int的列表数据

ListIntAny

[]map[int]interface{}  

key为int、value为interface{}的列表数据

ListIntStr

[]map[int]string

key为int、value为string的列表数据

ListIntInt

[]map[int]int

key为int、value为int的列表数据

ListAnyBool

[]map[interface{}]bool

key为interface{}、value为bool的列表数据

ListStrBool

[]map[string]bool    

key为string、value为bool的列表数据

ListIntBool

 []map[int]bool

key为int、value为bool的列表数据

4.Slice类型

Slice类型即切片类型,是对数组一个连续片段的引用, 数组的长度不可改变,在特定场景中这样的集合就不太适用,切片("动态数组")与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。例如:gf.SliceInt{1,2,3 }。

类型

对应原来组合类型

说明

Slice

[]interface{}

interface{}的切片数据

SliceStr

[]string

string的切片数据

SliceInt

[]int

int的切片数据

二、类型转换

框架给大家提供一些常用的类,any是interface{}类型。

方法

功能说明

gf.Int()

any数据类型转成int

gf.Int8()

any数据类型转成int8

gf.Int16()

any数据类型转成int16

gf.Int32()

any数据类型转成int32

gf.Int64()

any数据类型转成int64

gf.Uint()

any数据类型转成uint

gf.Uint8()

any数据类型转成uint8

gf.Uint16()

any数据类型转成uint16

gf.Uint32()

any数据类型转成uint32

gf.Uint64()

any数据类型转成uint64

gf.Float32()

any数据类型转成float32

gf.Float64()

any数据类型转成float64

gf.Bool()

any数据类型转成bool

gf.String()

any数据类型转成string

gf.Bytes()

any数据类型转成 []byte

gf.Strings()

any数据类型转成 []string 数组

gf.Ints()

any数据类型转成 []int 数组

gf.Floats()

any数据类型转成 []float64 数组

gf.Interfaces()

any数据类型转成 []interface{}  数组

gf.StringToJSON()

将字符串转JSON编码,返回interface{}类型

gf.JSONToString()

将JSON编码转为字符串,返回string

三、ORM返回数据字段数据类型转换

我们在操作数据库获取数据时,要对返回数据进行操作,需要对数据类型转换再操作,如需要做运算 得把数据数量类型转成同一类型才能进行操作。

示例:data, err := gf.Model("createcode_product").Where("id", id).Find(),获取int类型 price:=data["price"].Int(),获取一个int数据类型的价格。

方法

功能说明

Int()

转成int

Int8()

转成int8

Int16()

转成int16

Int32()

转成int32

Int64()

转成int64

Uint()

转成uint

Uint8()

转成uint8

Uint16()

转成uint16

Uint32()

转成uint32

Uint64()

转成uint64

Float32()

转成float32

 Float64()

转成float64

Time("Y-m-d H:i:s")

转成time.Time

Duration()

转成time. Duration

Val()

转成 通用val

Bytes()

转成 []byte

String()

转成string

Bool()

转成Bool

补充说明如果你从上面查询的data取出数据做处理,然后想重新赋值给data,那得用gf.VarNew()方法赋值,否则报类型不匹配错误,赋值例子:data["price"]=gf.VarNew(12)

本文内容对应开发文档:Gofly文档-Go全栈开发社区

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值