From 280c3b4a868e5ebecc08e60cbb508e166e452baf Mon Sep 17 00:00:00 2001 From: John Guo Date: Mon, 10 Jan 2022 20:33:09 +0800 Subject: [PATCH] improve package gvar; remove gvar.Create --- container/gvar/gvar.go | 25 +--- container/gvar/gvar_z_bench_obj_test.go | 145 ----------------------- container/gvar/gvar_z_example_test.go | 10 +- container/gvar/gvar_z_unit_basic_test.go | 5 +- 4 files changed, 8 insertions(+), 177 deletions(-) delete mode 100644 container/gvar/gvar_z_bench_obj_test.go diff --git a/container/gvar/gvar.go b/container/gvar/gvar.go index f5ec03090..f9d79adab 100644 --- a/container/gvar/gvar.go +++ b/container/gvar/gvar.go @@ -26,28 +26,15 @@ type Var struct { // The optional parameter `safe` specifies whether Var is used in concurrent-safety, // which is false in default. func New(value interface{}, safe ...bool) *Var { - v := Var{} if len(safe) > 0 && !safe[0] { - v.safe = true - v.value = gtype.NewInterface(value) - } else { - v.value = value + return &Var{ + value: gtype.NewInterface(value), + safe: true, + } } - return &v -} - -// Create creates and returns a new Var with given `value`. -// The optional parameter `safe` specifies whether Var is used in concurrent-safety, -// which is false in default. -func Create(value interface{}, safe ...bool) Var { - v := Var{} - if len(safe) > 0 && !safe[0] { - v.safe = true - v.value = gtype.NewInterface(value) - } else { - v.value = value + return &Var{ + value: value, } - return v } // Clone does a shallow copy of current Var and returns a pointer to this Var. diff --git a/container/gvar/gvar_z_bench_obj_test.go b/container/gvar/gvar_z_bench_obj_test.go deleted file mode 100644 index 8053ce174..000000000 --- a/container/gvar/gvar_z_bench_obj_test.go +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright GoFrame Author(https://goframe.org). All Rights Reserved. -// -// This Source Code Form is subject to the terms of the MIT License. -// If a copy of the MIT was not distributed with this file, -// You can obtain one at https://github.com/gogf/gf. - -// go test *.go -bench=".*" -benchmem - -package gvar - -import "testing" - -var varObj = Create(nil) - -func Benchmark_Obj_Set(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Set(i) - } -} - -func Benchmark_Obj_Val(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Val() - } -} - -func Benchmark_Obj_IsNil(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.IsNil() - } -} - -func Benchmark_Obj_Bytes(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Bytes() - } -} - -func Benchmark_Obj_String(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.String() - } -} - -func Benchmark_Obj_Bool(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Bool() - } -} - -func Benchmark_Obj_Int(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Int() - } -} - -func Benchmark_Obj_Int8(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Int8() - } -} - -func Benchmark_Obj_Int16(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Int16() - } -} - -func Benchmark_Obj_Int32(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Int32() - } -} - -func Benchmark_Obj_Int64(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Int64() - } -} - -func Benchmark_Obj_Uint(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Uint() - } -} - -func Benchmark_Obj_Uint8(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Uint8() - } -} - -func Benchmark_Obj_Uint16(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Uint16() - } -} - -func Benchmark_Obj_Uint32(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Uint32() - } -} - -func Benchmark_Obj_Uint64(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Uint64() - } -} - -func Benchmark_Obj_Float32(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Float32() - } -} - -func Benchmark_Obj_Float64(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Float64() - } -} - -func Benchmark_Obj_Ints(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Ints() - } -} - -func Benchmark_Obj_Strings(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Strings() - } -} - -func Benchmark_Obj_Floats(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Floats() - } -} - -func Benchmark_Obj_Interfaces(b *testing.B) { - for i := 0; i < b.N; i++ { - varObj.Interfaces() - } -} diff --git a/container/gvar/gvar_z_example_test.go b/container/gvar/gvar_z_example_test.go index 2ec4c6704..f8ed1b929 100644 --- a/container/gvar/gvar_z_example_test.go +++ b/container/gvar/gvar_z_example_test.go @@ -8,6 +8,7 @@ package gvar_test import ( "fmt" + "github.com/gogf/gf/v2/container/gvar" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/internal/json" @@ -23,15 +24,6 @@ func ExampleVarNew() { // "400" } -// Create -func ExampleVarCreate() { - var v = gvar.Create(100.0) - g.Dump(&v) - - // Output: - // "100" -} - // Clone func ExampleVar_Clone() { tmp := "fisrt hello" diff --git a/container/gvar/gvar_z_unit_basic_test.go b/container/gvar/gvar_z_unit_basic_test.go index 92c2fbd20..a9592b81f 100644 --- a/container/gvar/gvar_z_unit_basic_test.go +++ b/container/gvar/gvar_z_unit_basic_test.go @@ -28,10 +28,7 @@ func Test_Set(t *testing.T) { v.Set(123.456) t.Assert(v.Val(), 123.456) }) - gtest.C(t, func(t *gtest.T) { - v := gvar.Create(123.456) - t.Assert(v.Val(), 123.456) - }) + gtest.C(t, func(t *gtest.T) { objOne := gvar.New("old", true) objOneOld, _ := objOne.Set("new").(string)