mirror of
https://gitee.com/johng/gf
synced 2026-06-07 02:12:11 +08:00
improve gvar by changig gvar.Var from type struct to interface
This commit is contained in:
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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{
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user