From 5114db00c66cd8c9b1b2bc7ca9536517419743ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Tue, 4 Apr 2023 16:26:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8E=A7=E5=88=B6=E5=8F=B0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=BE=93=E5=87=BA=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- console.go | 90 +++++++++++++++++++++++++++++++++++++++++++++++++ console_test.go | 23 +++++++++++++ init.go | 3 ++ 3 files changed, 116 insertions(+) create mode 100644 console.go create mode 100644 console_test.go diff --git a/console.go b/console.go new file mode 100644 index 0000000..620f999 --- /dev/null +++ b/console.go @@ -0,0 +1,90 @@ +// Package util ... +// +// Description : util ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2023-04-04 16:09 +package util + +import ( + "encoding/json" + "fmt" + "reflect" +) + +// console 终端数据输出的一些操作 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 16:10 2023/4/4 +type console struct { + enable bool +} + +// Enable 启用 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 16:10 2023/4/4 +func (c *console) Enable() { + c.enable = true +} + +// Disable 禁用 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 16:11 2023/4/4 +func (c *console) Disable() { + c.enable = false +} + +// Output 禁用终端输出 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 16:13 2023/4/4 +func (c *console) Output(dataList ...interface{}) { + if !c.enable { + return + } + list := make([]interface{}, 0) + for _, item := range dataList { + list = append(list, c.getDataStr(item)) + } + fmt.Println(list...) +} + +// getDataStr 数据转换为字符串 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 16:14 2023/4/4 +func (c *console) getDataStr(data interface{}) string { + if nil == data { + return "nil" + } + dataValue := reflect.ValueOf(data) + dataType := reflect.TypeOf(data).Kind() + if dataType == reflect.Ptr { + dataValue = dataValue.Elem() + } + + switch dataValue.Kind() { + case reflect.Map: + fallthrough + case reflect.Slice: + fallthrough + case reflect.Array: + fallthrough + case reflect.Struct: + byteData, _ := json.Marshal(data) + return string(byteData) + case reflect.Func: + return dataValue.String() + default: + return fmt.Sprintf("%v", data) + } + return "" +} diff --git a/console_test.go b/console_test.go new file mode 100644 index 0000000..732ead1 --- /dev/null +++ b/console_test.go @@ -0,0 +1,23 @@ +// Package util ... +// +// Description : util ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2023-04-04 16:21 +package util + +import "testing" + +func Test_console_Output(t *testing.T) { + Console.Enable() + var a = map[string]interface{}{ + "name": "baicha", + } + type U struct { + Name string + } + b := &U{Name: "qinghuan"} + c := U{Name: "test"} + Console.Output(a, b, c) +} diff --git a/init.go b/init.go index 47f8d9a..37c36a2 100644 --- a/init.go +++ b/init.go @@ -38,6 +38,8 @@ var ( JWT *ownJwt // UserAgent ... UserAgent *userAgent + // Console 控制台输出数据 + Console *console ) func init() { @@ -58,4 +60,5 @@ func init() { UserAgent = &userAgent{ list: defaultUserAgentList, } + Console = &console{} }