improve gvar by changig gvar.Var from type struct to interface

This commit is contained in:
John
2020-06-16 17:38:05 +08:00
parent 5c774fd391
commit 4d38b508a3
44 changed files with 492 additions and 389 deletions

View File

@ -173,7 +173,7 @@ type Link interface {
type (
// Value is the field value type.
Value = *gvar.Var
Value = gvar.Var
// Record is the row record of the table.
Record map[string]Value

View File

@ -244,12 +244,12 @@ func (c *Core) GetScan(pointer interface{}, sql string, args ...interface{}) err
func (c *Core) GetValue(sql string, args ...interface{}) (Value, error) {
one, err := c.DB.GetOne(sql, args...)
if err != nil {
return nil, err
return gvar.New(nil), err
}
for _, v := range one {
return v, nil
}
return nil, nil
return gvar.New(nil), nil
}
// GetCount queries and returns the count from database.

View File

@ -8,6 +8,7 @@ package gdb
import (
"fmt"
"github.com/gogf/gf/container/gvar"
"github.com/gogf/gf/util/gconv"
"reflect"
)
@ -118,12 +119,12 @@ func (m *Model) Value(fieldsAndWhere ...interface{}) (Value, error) {
}
one, err := m.One()
if err != nil {
return nil, err
return gvar.New(nil), err
}
for _, v := range one {
return v, nil
}
return nil, nil
return gvar.New(nil), nil
}
// Array queries and returns data values as slice from database.

View File

@ -210,8 +210,8 @@ func (r *Redis) Do(command string, args ...interface{}) (interface{}, error) {
return conn.Do(command, args...)
}
// DoVar returns value from Do as *gvar.Var.
func (r *Redis) DoVar(command string, args ...interface{}) (*gvar.Var, error) {
// DoVar returns value from Do as gvar.Var.
func (r *Redis) DoVar(command string, args ...interface{}) (gvar.Var, error) {
v, err := r.Do(command, args...)
if result, ok := v.([]byte); ok {
return gvar.New(gconv.UnsafeBytesToStr(result)), err

View File

@ -44,13 +44,13 @@ func (c *Conn) Do(commandName string, args ...interface{}) (reply interface{}, e
}
// DoVar retrieves and returns the result from command as gvar.Var.
func (c *Conn) DoVar(command string, args ...interface{}) (*gvar.Var, error) {
func (c *Conn) DoVar(command string, args ...interface{}) (gvar.Var, error) {
v, err := c.Do(command, args...)
return gvar.New(v), err
}
// ReceiveVar receives a single reply as gvar.Var from the Redis server.
func (c *Conn) ReceiveVar() (*gvar.Var, error) {
func (c *Conn) ReceiveVar() (gvar.Var, error) {
v, err := c.Receive()
return gvar.New(v), err
}

View File

@ -15,7 +15,7 @@ import (
func Example_autoMarshalUnmarshalMap() {
var (
err error
result *gvar.Var
result gvar.Var
key = "user"
data = g.Map{
"id": 10000,
@ -40,7 +40,7 @@ func Example_autoMarshalUnmarshalStruct() {
}
var (
err error
result *gvar.Var
result gvar.Var
key = "user"
user = &User{
Id: 10000,
@ -71,7 +71,7 @@ func Example_autoMarshalUnmarshalStructSlice() {
}
var (
err error
result *gvar.Var
result gvar.Var
key = "user-slice"
users1 = []User{
{
@ -104,7 +104,7 @@ func Example_autoMarshalUnmarshalStructSlice() {
func Example_hashSet() {
var (
err error
result *gvar.Var
result gvar.Var
key = "user"
)
_, err = g.Redis().Do("HSET", key, "id", 10000)

View File

@ -356,7 +356,7 @@ func Test_Auto_MarshalSlice(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
var (
result *gvar.Var
result gvar.Var
key = "user-slice"
users1 = []User{
{