From ec508ad7da67a4514ddf953a0ceb221e412b0c5f Mon Sep 17 00:00:00 2001 From: Stanly Date: Thu, 10 Dec 2020 05:19:04 +0800 Subject: [PATCH] Add get data --- types/data.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/types/data.go b/types/data.go index 1488aed..1e7c711 100644 --- a/types/data.go +++ b/types/data.go @@ -116,6 +116,29 @@ func (data Data) MustGetIntSlice(key string) []int { return values } +// GetData 取得資料 +func (data Data) GetData(key string) (Data, error) { + value, err := data.Get(key) + if err != nil { + return nil, err + } + + switch value.(type) { + case map[string]interface{}: + return Data(value.(map[string]interface{})), nil + case Data: + return value.(Data), nil + default: + return nil, ErrFormat + } +} + +// MustGetData 強制取得資料 +func (data Data) MustGetData(key string) Data { + value, _ := data.GetData(key) + return value +} + // GetDataSlice 取得資料切片 func (data Data) GetDataSlice(key string) ([]Data, error) { values, err := data.GetSlice(key)