泛型类

package
v0.0.0-...-fcd50c7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2024 License: MIT Imports: 8 Imported by: 1

Documentation

Overview

gvar 包提供了一个通用变量类型,类似于泛型。 md5:edfcd2c00687a1cf

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MapOption

type MapOption = gconv.MapOption

MapOption 定义了映射转换的选项。 md5:8dc53d6fdc486bf8

type Var

type Var struct {
	// contains filtered or unexported fields
}

Var 是一个通用变量类型的实现者。 md5:8d1126ac62635ed2

func X创建

func X创建(值 interface{}, 并发安全 ...bool) *Var

X创建 创建并返回一个具有给定`value`的新Var。 可选参数`safe`指定Var是否用于并发安全,默认为false。 md5:451fb2bb36ca4e4f

func (*Var) Array别名

func (v *Var) Array别名() []interface{}

Array别名是Interfaces的别名。 md5:137944f64a8b7b89

func (*Var) DeepCopy

func (v *Var) DeepCopy() interface{}

DeepCopy实现当前类型的深拷贝接口。 md5:9cfbcb08109f6ce1

func (*Var) Interface

func (v *Var) Interface() interface{}

Interface 是 Val 的别名。 md5:7ddc9573cd7d9927

Example

Interface

package main

import (
	gvar "github.com/888go/goframe/container/gvar"
	"github.com/888go/goframe/frame/g"
)

func main() {
	var v = gvar.X创建(100.00)
	g.X调试输出并带类型(v.Interface())

}
Output:

float64(100)

func (*Var) MapDeep弃用

func (v *Var) MapDeep弃用(值类型标签 ...string) map[string]interface{}

MapDeep弃用 递归地将 `v` 转换为 map[string]interface{} 并返回。 提示:已使用 Map 函数代替。 md5:1a45b51f1c84bb44

func (*Var) MapStrStrDeep弃用

func (v *Var) MapStrStrDeep弃用(值类型标签 ...string) map[string]string

MapStrStrDeep弃用 递归地将 `v` 转换并返回为 map[string]string 类型。 已废弃:请使用 MapStrStr 函数代替。 md5:9f5885f5e2b8a6e4

func (*Var) MapToMap

func (v *Var) MapToMap(pointer interface{}, mapping ...map[string]string) (err error)

MapToMap 将任意映射类型变量 `params` 转换为另一个映射类型变量 `pointer`。 参见 gconv.MapToMap。 md5:bc3ef5f9ee0920e7

Example

MapToMap

package main

import (
	"fmt"

	gvar "github.com/888go/goframe/container/gvar"
	"github.com/888go/goframe/frame/g"
)

func main() {
	var (
		m1 = gvar.X创建(g.MapIntInt{0: 100, 1: 200})
		m2 = g.MapStrStr{}
	)

	err := m1.MapToMap(&m2)
	if err != nil {
		panic(err)
	}

	fmt.Printf("%#v", m2)

}
Output:

map[string]string{"0":"100", "1":"200"}

func (*Var) MapToMaps

func (v *Var) MapToMaps(pointer interface{}, mapping ...map[string]string) (err error)

MapToMaps 将任何类型的映射变量 `params` 转换为另一个映射类型变量 `pointer`。 参考 gconv.MapToMaps。 md5:1bd0da08c8937a10

Example

MapToMaps

package main

import (
	"fmt"

	gvar "github.com/888go/goframe/container/gvar"
	"github.com/888go/goframe/frame/g"
)

func main() {
	var (
		p1 = g.MapStrAny{"product": g.Map{"id": 1, "price": 100}}
		p2 = g.MapStrAny{"product": g.Map{"id": 2, "price": 200}}
		v  = gvar.X创建(g.MapStrAny数组{p1, p2})
		v2 []g.MapStrStr
	)

	err := v.MapToMaps(&v2)
	if err != nil {
		panic(err)
	}
	fmt.Printf("%#v", v2)

}
Output:

[]map[string]string{map[string]string{"product":"{\"id\":1,\"price\":100}"}, map[string]string{"product":"{\"id\":2,\"price\":200}"}}

func (*Var) MapToMapsDeep

func (v *Var) MapToMapsDeep(pointer interface{}, mapping ...map[string]string) (err error)

MapToMapsDeep 将任何映射类型变量 `params` 递归地转换为另一个映射类型变量 `pointer`。 参考 gconv.MapToMapsDeep。 md5:77546446f168a41a

Example

MapToMapsDeep

package main

import (
	"fmt"

	gvar "github.com/888go/goframe/container/gvar"
	"github.com/888go/goframe/frame/g"
)

func main() {
	var (
		p1 = g.MapStrAny{"product": g.Map{"id": 1, "price": 100}}
		p2 = g.MapStrAny{"product": g.Map{"id": 2, "price": 200}}
		v  = gvar.X创建(g.MapStrAny数组{p1, p2})
		v2 []g.MapStrStr
	)

	err := v.MapToMapsDeep(&v2)
	if err != nil {
		panic(err)
	}
	fmt.Printf("%#v", v2)

}
Output:

[]map[string]string{map[string]string{"product":"{\"id\":1,\"price\":100}"}, map[string]string{"product":"{\"id\":2,\"price\":200}"}}

func (*Var) MapsDeep弃用

func (v *Var) MapsDeep弃用(值类型标签 ...string) []map[string]interface{}

MapsDeep弃用 将 `value` 递归地转换为 []map[string]interface{} 类型。 警告:已使用 Maps 替代。 md5:10c733fd844f279f

func (Var) MarshalJSON

func (v Var) MarshalJSON() ([]byte, error)

MarshalJSON 实现了接口 MarshalJSON 以供 json.Marshal 使用。 md5:43c3b36e60a18f9a

Example

MarshalJSON

package main

import (
	gvar "github.com/888go/goframe/container/gvar"
	"github.com/888go/goframe/frame/g"
	"github.com/888go/goframe/internal/json"
)

func main() {
	testMap := g.Map{
		"code":  "0001",
		"name":  "Golang",
		"count": 10,
	}

	var v = gvar.X创建(testMap)
	res, err := json.Marshal(&v)
	if err != nil {
		panic(err)
	}
	g.X调试输出并带类型(res)

}
Output:

[]byte(42) "{"code":"0001","count":10,"name":"Golang"}"

func (*Var) Slice别名

func (v *Var) Slice别名() []interface{}

Slice别名 是 Interfaces 的别名。 md5:94e5a660c49c5e34

func (*Var) String

func (v *Var) String() string

String 将 `v` 转换为字符串并返回。 md5:773073091c0b6fb0

Example

String

package main

import (
	gvar "github.com/888go/goframe/container/gvar"
	"github.com/888go/goframe/frame/g"
)

func main() {
	var v = gvar.X创建("GoFrame")
	g.X调试输出并带类型(v.String())

}
Output:

string(7) "GoFrame"

func (*Var) Struct

func (v *Var) Struct(pointer interface{}, mapping ...map[string]string) error

Struct 将值`v`映射到`pointer`。 参数`pointer`应为指向结构体实例的指针。 参数`mapping`用于指定键到属性的映射规则。 md5:a5bf066b3ef1c653

Example
package main

import (
	gvar "github.com/888go/goframe/container/gvar"
	"github.com/888go/goframe/frame/g"
)

func main() {
	params1 := g.Map{
		"uid":  1,
		"Name": "john",
	}
	v := gvar.X创建(params1)
	type tartget struct {
		Uid  int
		Name string
	}
	t := new(tartget)
	if err := v.Struct(&t); err != nil {
		panic(err)
	}
	g.X调试输出(t)

}
Output:

{
    Uid:  1,
    Name: "john",
}

func (*Var) Structs

func (v *Var) Structs(pointer interface{}, mapping ...map[string]string) error

Structs 将 `v` 转换并返回为指定结构体切片。 md5:396a4079aac15c40

Example
package main

import (
	gvar "github.com/888go/goframe/container/gvar"
	"github.com/888go/goframe/frame/g"
)

func main() {
	paramsArray := []g.Map{}
	params1 := g.Map{
		"uid":  1,
		"Name": "golang",
	}
	params2 := g.Map{
		"uid":  2,
		"Name": "java",
	}

	paramsArray = append(paramsArray, params1, params2)
	v := gvar.X创建(paramsArray)
	type tartget struct {
		Uid  int
		Name string
	}
	var t []tartget
	if err := v.Structs(&t); err != nil {
		panic(err)
	}
	g.X调试输出并带类型(t)

}
Output:

[]泛型类_test.tartget(2) [
    泛型类_test.tartget(2) {
        Uid:  int(1),
        Name: string(6) "golang",
    },
    泛型类_test.tartget(2) {
        Uid:  int(2),
        Name: string(4) "java",
    },
]

func (*Var) UnmarshalJSON

func (v *Var) UnmarshalJSON(b []byte) error

UnmarshalJSON实现了json.Unmarshal接口的UnmarshalJSON方法。 md5:f6766b88cf3d63c2

Example

UnmarshalJSON

package main

import (
	gvar "github.com/888go/goframe/container/gvar"
	"github.com/888go/goframe/frame/g"
	"github.com/888go/goframe/internal/json"
)

func main() {
	tmp := []byte(`{
	     "Code":          "0003",
	     "Name":          "Golang Book3",
	     "Quantity":      3000,
	     "Price":         300,
	     "OnSale":        true
	}`)
	var v = gvar.X创建(map[string]interface{}{})
	if err := json.Unmarshal(tmp, &v); err != nil {
		panic(err)
	}

	g.X调试输出(v)

}
Output:

"{\"Code\":\"0003\",\"Name\":\"Golang Book3\",\"OnSale\":true,\"Price\":300,\"Quantity\":3000}"

func (*Var) UnmarshalValue

func (v *Var) UnmarshalValue(value interface{}) error

UnmarshalValue 是一个接口实现,用于将任何类型的价值设置为 Var。 md5:c6a2fce2313ec90f

Example

UnmarshalValue

package main

import (
	gvar "github.com/888go/goframe/container/gvar"
	"github.com/888go/goframe/frame/g"
)

func main() {
	tmp := g.Map{
		"code":  "00002",
		"name":  "GoFrame",
		"price": 100,
		"sale":  true,
	}

	var v = gvar.X创建(map[string]interface{}{})
	if err := v.UnmarshalValue(tmp); err != nil {
		panic(err)
	}
	g.X调试输出(v)

}
Output:

"{\"code\":\"00002\",\"name\":\"GoFrame\",\"price\":100,\"sale\":true}"

func (*Var) X取Map

func (v *Var) X取Map(选项 ...MapOption) map[string]interface{}

X取Map 将 `v` 转换为 map[string]interface{} 并返回。 md5:88b2687bddef8ca6

func (*Var) X取MapStrAny

func (v *Var) X取MapStrAny(option ...MapOption) map[string]interface{}

X取MapStrAny 类似于 Map 函数,但它实现了 X取MapStrAny 接口。 md5:f7cf0af70c8cbee9

func (*Var) X取Map数组

func (v *Var) X取Map数组(选项 ...MapOption) []map[string]interface{}

X取Map数组 将 `v` 转换为 map[string]string 类型并返回。参考 gconv.X取Map数组。 md5:0240a1ad5bd80743

func (*Var) X取any数组

func (v *Var) X取any数组() []interface{}

X取any数组 将 `v` 转换并返回为 []interface{}。 md5:8b6ea8b55919ad7a

func (*Var) X取gtime时间类

func (v *Var) X取gtime时间类(format ...string) *gtime.Time

X取gtime时间类将`v`转换为*gtime.Time并返回。 参数`format`使用gtime指定时间字符串的格式,例如:Y-m-d H:i:s。 md5:0809b54d564e1570

func (*Var) X取值

func (v *Var) X取值() interface{}

X取值返回当前的`v`值。 md5:6c5265469db610f7

func (*Var) X取字节集

func (v *Var) X取字节集() []byte

X取字节集 将 `v` 转换并返回为 []byte。 md5:f6ac565af1bd5f76

func (*Var) X取小数32位

func (v *Var) X取小数32位() float32

X取小数32位 将 `v` 转换为 float32 并返回。 md5:10c3ad7673a95ff1

func (*Var) X取小数32位数组

func (v *Var) X取小数32位数组() []float32

X取小数32位数组 将 `v` 转换并返回为 []float32。 md5:c1c14441284dfcfd

func (*Var) X取小数64位

func (v *Var) X取小数64位() float64

X取小数64位 将 `v` 转换为 float64 并返回。 md5:0dd01006c903cd28

func (*Var) X取小数64位数组

func (v *Var) X取小数64位数组() []float64

X取小数64位数组 将 `v` 转换为 []float64 并返回。 md5:f515ce0f1efc3fca

func (*Var) X取小数数组

func (v *Var) X取小数数组() []float64

X取小数数组 是 Float64s 的别名。 md5:df981a5dcf3a4356

func (*Var) X取布尔

func (v *Var) X取布尔() bool

X取布尔 将 `v` 转换为布尔值并返回。 md5:cb5fceb22f0740d6

func (*Var) X取整数

func (v *Var) X取整数() int

X取整数 将 `v` 转换并返回为 int 类型。 md5:0edb94d8263e3c57

func (*Var) X取整数8位

func (v *Var) X取整数8位() int8

X取整数8位 将 `v` 转换并返回为 int8 类型。 md5:6854263a414a9d3e

func (*Var) X取整数16位

func (v *Var) X取整数16位() int16

X取整数16位 将 `v` 转换为 int16 并返回。 md5:880f0d0288aaaf50

func (*Var) X取整数32位

func (v *Var) X取整数32位() int32

X取整数32位 将 `v` 转换为 int32 并返回。 md5:ba00aec88defc21e

func (*Var) X取整数64位

func (v *Var) X取整数64位() int64

X取整数64位 将 `v` 转换并返回为 int64 类型。 md5:d4d88962698d555e

func (*Var) X取整数64位数组

func (v *Var) X取整数64位数组() []int64

X取整数64位数组 将 `v` 转换并返回为 []int64。 md5:def1c601eff8c141

func (*Var) X取整数数组

func (v *Var) X取整数数组() []int

X取整数数组 将 `v` 转换并返回为 []int 类型。 md5:063ba1cd966af441

func (*Var) X取文本Map

func (v *Var) X取文本Map(选项 ...MapOption) map[string]string

X取文本Map 将 `v` 转换并返回为 map[string]string 类型。 md5:b5af3d144d89aad9

func (*Var) X取文本数组

func (v *Var) X取文本数组() []string

X取文本数组 将 `v` 转换为字符串切片并返回。 md5:7f2a45762d2cb9c8

func (*Var) X取时长

func (v *Var) X取时长() time.Duration

X取时长 将 `v` 转换并返回为 time.X取时长 类型。 如果 `v` 的值为字符串,那么它会使用 time.ParseDuration 进行转换。 md5:202e87ef6d521c17

func (*Var) X取时间类

func (v *Var) X取时间类(格式 ...string) time.Time

X取时间类 将 `v` 转换并返回为 time.X取时间类 类型。 参数 `format` 使用 gtime 指定时间字符串的格式, 例如:Y-m-d H:i:s。 md5:f8b0cb9b11c12546

func (*Var) X取正整数

func (v *Var) X取正整数() uint

X取正整数 将 `v` 转换并返回为无符号整数。 md5:5c94bb67c818fb47

func (*Var) X取正整数8位

func (v *Var) X取正整数8位() uint8

X取正整数8位 将 `v` 转换为 uint8 并返回。 md5:aa0db1622c86fbf4

func (*Var) X取正整数16位

func (v *Var) X取正整数16位() uint16

X取正整数16位 将 `v` 转换为 uint16 并返回。 md5:45ebb672f56f12b0

func (*Var) X取正整数32位

func (v *Var) X取正整数32位() uint32

X取正整数32位 将 `v` 转换并返回为 uint32 类型。 md5:b37b73d600b5c94f

func (*Var) X取正整数64位

func (v *Var) X取正整数64位() uint64

X取正整数64位 将 `v` 转换并返回为 uint64 类型。 md5:b9d756b5c1231aaa

func (*Var) X取正整数64位数组

func (v *Var) X取正整数64位数组() []uint64

X取正整数64位数组 将 `v` 转换为 []uint64 并返回。 md5:b4b77de84a5454a9

func (*Var) X取正整数数组

func (v *Var) X取正整数数组() []uint

X取正整数数组将`v`转换为[]uint并返回。 md5:fee8ec1b779988fe

func (*Var) X取泛型类Map

func (v *Var) X取泛型类Map(选项 ...MapOption) map[string]*Var

X取泛型类Map将`v`转换为map[string]Var并返回。 md5:18642fac7292b37a

func (*Var) X取泛型类Map_递归

func (v *Var) X取泛型类Map_递归(值类型标签 ...string) map[string]*Var

X取泛型类Map_递归 递归地将`v`转换并返回为map[string]*Var。 注意:请使用MapStrVar代替。 md5:b37116aff42f6b15

func (*Var) X取泛型类数组

func (v *Var) X取泛型类数组() []*Var

X取泛型类数组 将 `v` 转换为 []Var 并返回。 md5:fdbc7c7817f9852d

func (*Var) X取结构体指针

func (v *Var) X取结构体指针(结构体指针 interface{}, 名称映射 ...map[string]string) error

X取结构体指针 自动检查`pointer`的类型,并将`params`转换为`pointer`。它支持`pointer`类型,包括`*map`、`*[]map`、`*[]*map`、`*struct`、`**struct`、`[]struct`和`[]*struct`。

参见gconv.X取结构体指针。 md5:7f6cfec69999319d

func (*Var) X取结构数组或Map数组值

func (v *Var) X取结构数组或Map数组值(名称 interface{}) (值s []interface{})

X取结构数组或Map数组值 获取并返回所有项结构体/映射中键为`key`的元素。 注意,参数`list`应该是包含映射或结构体元素的切片类型, 否则将返回一个空切片。 md5:22a160e15c6a6d6c

func (*Var) X取结构数组或Map数组值并去重

func (v *Var) X取结构数组或Map数组值并去重(名称 string) []interface{}

X取结构数组或Map数组值并去重 获取并返回具有键为`key`的所有结构体/映射的独特元素。 请注意,参数`list`应为包含映射或结构体元素的切片类型,否则将返回一个空切片。 md5:0f361d3ff901d0a1

func (*Var) X是否为Map

func (v *Var) X是否为Map() bool

X是否为Map 检查 `v` 是否为map类型。 md5:95b395f907d9b23f

func (*Var) X是否为Nil

func (v *Var) X是否为Nil() bool

X是否为Nil 检查 `v` 是否为 nil。 md5:af4db285987ff32d

func (*Var) X是否为小数

func (v *Var) X是否为小数() bool

X是否为小数 检查 `v` 是否为浮点类型。 md5:b61eead751ffcf77

func (*Var) X是否为数组

func (v *Var) X是否为数组() bool

X是否为数组 检查 `v` 是否为切片类型。 md5:a71074d53c0be209

func (*Var) X是否为整数

func (v *Var) X是否为整数() bool

X是否为整数 检查 `v` 是否为整数类型。 md5:2f04bd336f37dccf

func (*Var) X是否为正整数

func (v *Var) X是否为正整数() bool

X是否为正整数检查`v`是否为uint类型。 md5:b5f59074f32c46ac

func (*Var) X是否为空

func (v *Var) X是否为空() bool

X是否为空 检查 `v` 是否为空。 md5:270630fa930d8a69

func (*Var) X是否为结构

func (v *Var) X是否为结构() bool

X是否为结构 检查 `v` 是否为结构体类型。 md5:9b667cd3b80530d9

func (*Var) X浅拷贝

func (v *Var) X浅拷贝() *Var

X浅拷贝 创建当前Var的浅拷贝,并返回指向这个Var的指针。 md5:1f467c25c395f6f1

func (*Var) X深拷贝

func (v *Var) X深拷贝() *Var

X深拷贝 对当前的 Var 进行深拷贝,并返回指向这个新 Var 的指针。 md5:78d7c2be2a0563f7

func (*Var) X设置值

func (v *Var) X设置值(value interface{}) (old interface{})

X设置值 将 `value` 设置为 `v`,并返回旧值。 md5:ee2b9da700fa7f95

type Vars

type Vars []*Var

Vars是一个*Var类型的切片。 md5:e8d9e194fa744a27

func (Vars) X取any数组

func (vs Vars) X取any数组() (s []interface{})

X取any数组 将 `vs` 转换并返回为 []interface{} 类型。 md5:6fe626226748e2c9

func (Vars) X取小数32位数组

func (vs Vars) X取小数32位数组() (数组 []float32)

X取小数32位数组 将 `vs` 转换并返回为 []float32。 md5:12c5ec8d220918de

func (Vars) X取小数64位数组

func (vs Vars) X取小数64位数组() (数组 []float64)

X取小数64位数组 将 `vs` 转换为并返回一个 []float64 类型。 md5:5cab9209bbdd927c

func (Vars) X取整数8位数组

func (vs Vars) X取整数8位数组() (数组 []int8)

X取整数8位数组 将 `vs` 转换并返回为 []int8 类型的切片。 md5:16fc28e3f01c7aaf

func (Vars) X取整数16位数组

func (vs Vars) X取整数16位数组() (数组 []int16)

X取整数16位数组 将 `vs` 转换并返回为 []int16。 md5:cc768f8dc87ad4bc

func (Vars) X取整数32位数组

func (vs Vars) X取整数32位数组() (数组 []int32)

X取整数32位数组 将 `vs` 转换为 []int32 并返回。 md5:7215f5b253a087b8

func (Vars) X取整数64位数组

func (vs Vars) X取整数64位数组() (数组 []int64)

X取整数64位数组 将 `vs` 转换为 []int64 并返回。 md5:94ba8c59fe9fa849

func (Vars) X取整数数组

func (vs Vars) X取整数数组() (s []int)

X取整数数组 将 `vs` 转换为 []Int 并返回。 md5:cb5b6b2458c0609e

func (Vars) X取文本数组

func (vs Vars) X取文本数组() (s []string)

X取文本数组 将 `vs` 转换为字符串切片并返回。 md5:5a2b561ba123eb40

func (Vars) X取正整数8位数组

func (vs Vars) X取正整数8位数组() (数组 []uint8)

X取正整数8位数组将`vs`转换并返回为[]uint8。 md5:7270fa354e186ac3

func (Vars) X取正整数16位数组

func (vs Vars) X取正整数16位数组() (数组 []uint16)

X取正整数16位数组 将 `vs` 转换为 []uint16 并返回。 md5:14a5805ab12b7fbe

func (Vars) X取正整数32位数组

func (vs Vars) X取正整数32位数组() (数组 []uint32)

X取正整数32位数组 将 `vs` 转换为 []uint32 并返回。 md5:432ace9bd7f4941e

func (Vars) X取正整数64位数组

func (vs Vars) X取正整数64位数组() (数组 []uint64)

X取正整数64位数组 将 `vs` 转换并返回为 []uint64 类型的切片。 md5:4c19a53bd828ba63

func (Vars) X取正整数数组

func (vs Vars) X取正整数数组() (s []uint)

X取正整数数组 将 `vs` 转换并返回为 []uint 类型的切片。 md5:14417d6f5180237c

func (Vars) X取结构体指针

func (vs Vars) X取结构体指针(结构体指针 interface{}, 名称映射 ...map[string]string) error

X取结构体指针 将 `vs` 转换为 []struct/[]*struct。 md5:e0e26cf0f4eb31e6

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL