Documentation
¶
Overview ¶
maputil/filter.go
maputil/maputil.go
maputil/merge.go
maputil/remove.go
Index ¶
- func CustomFilter[K comparable, V any](m map[K]V, filterFunc func(K, V) bool) map[K]V
- func FilterByKey[K comparable, V any](m map[K]V, condition FilterCondition, target K) (map[K]V, error)
- func FilterByValue[K comparable, V comparable](m map[K]V, condition FilterCondition, target V) (map[K]V, error)
- func Invert[K comparable, V comparable](m map[K]V) map[V]K
- func Keys[K comparable, V any](m map[K]V) []K
- func Merge[K comparable, V any](m1, m2 map[K]V, opts ...any) (map[K]V, error)
- func RemoveByKey[K comparable, V any](m map[K]V, key K, ignoreErrors ...bool) (map[K]V, error)
- func RemoveByKeys[K comparable, V any](m map[K]V, keys []K, ignoreErrors ...bool) (map[K]V, error)
- func RemoveByMap[K comparable, V comparable](m map[K]V, toRemove map[K]V, ignoreErrors ...bool) (map[K]V, error)
- func RemoveByValue[K comparable, V comparable](m map[K]V, value V, ignoreErrors ...bool) (map[K]V, error)
- func RemoveByValues[K comparable, V comparable](m map[K]V, values []V, ignoreErrors ...bool) (map[K]V, error)
- func RemoveKV[K comparable, V comparable](m map[K]V, key K, value V, ignoreErrors ...bool) (map[K]V, error)
- func Values[K comparable, V any](m map[K]V) []V
- type FilterCondition
- type MergeConflictResolutionStrategy
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CustomFilter ¶
func CustomFilter[K comparable, V any](m map[K]V, filterFunc func(K, V) bool) map[K]V
CustomFilter 函數,使用自訂的篩選函數來篩選 map 中的鍵值對
func FilterByKey ¶
func FilterByKey[K comparable, V any](m map[K]V, condition FilterCondition, target K) (map[K]V, error)
FilterByKey 函數,根據鍵來篩選 map 中的鍵值對
func FilterByValue ¶
func FilterByValue[K comparable, V comparable](m map[K]V, condition FilterCondition, target V) (map[K]V, error)
FilterByValue 函數,根據值來篩選 map 中的鍵值對
func Merge ¶
func Merge[K comparable, V any](m1, m2 map[K]V, opts ...any) (map[K]V, error)
Merge 函數,合併兩個 map,在鍵衝突時根據指定的策略處理 當不傳入策略時,默認使用 MergeDefault 策略
func RemoveByKey ¶
func RemoveByKey[K comparable, V any](m map[K]V, key K, ignoreErrors ...bool) (map[K]V, error)
RemoveByKey 函數,從 map 中移除指定的鍵並返回新的 map 如果鍵不存在,則報錯。可以選擇忽略錯誤。
func RemoveByKeys ¶
func RemoveByKeys[K comparable, V any](m map[K]V, keys []K, ignoreErrors ...bool) (map[K]V, error)
RemoveByKeys 函數,從 map 中移除所有指定鍵並返回新的 map 如果有任何鍵不存在,則報錯。可以選擇忽略錯誤。
func RemoveByMap ¶
func RemoveByMap[K comparable, V comparable](m map[K]V, toRemove map[K]V, ignoreErrors ...bool) (map[K]V, error)
RemoveByMap 函數,根據傳入的鍵值對 map 刪除另一個 map 中的對應鍵值對 默認情況下,當條件 map 中有任何鍵在目標 map 中不存在時會報錯。 如果設置 ignoreErrors 為 true,則忽略錯誤,只刪除匹配的部分。
func RemoveByValue ¶
func RemoveByValue[K comparable, V comparable](m map[K]V, value V, ignoreErrors ...bool) (map[K]V, error)
RemoveByValue 函數,從 map 中移除具有指定值的所有鍵值對並返回新的 map 如果沒有找到該值,則報錯。可以選擇忽略錯誤。
func RemoveByValues ¶
func RemoveByValues[K comparable, V comparable](m map[K]V, values []V, ignoreErrors ...bool) (map[K]V, error)
RemoveByValues 函數,從 map 中移除所有具有指定值的鍵值對並返回新的 map 如果沒有找到任何指定值,則報錯。可以選擇忽略錯誤。
func RemoveKV ¶
func RemoveKV[K comparable, V comparable](m map[K]V, key K, value V, ignoreErrors ...bool) (map[K]V, error)
RemoveKV 函數,從 map 中移除指定的鍵值對並返回新的 map 如果鍵不存在或者值不匹配,則報錯。可以選擇忽略錯誤。
Types ¶
type FilterCondition ¶
type FilterCondition int
FilterCondition 定義篩選條件
const ( FilterEqualTo FilterCondition = iota // 篩選等於目標值的鍵值對 FilterNotEqualTo // 篩選不等於目標值的鍵值對 FilterGreaterThan // 篩選大於目標值的鍵值對(僅適用於數字類型) FilterLessThan // 篩選小於目標值的鍵值對(僅適用於數字類型) FilterGreaterThanOrEqualTo // 篩選大於或等於目標值的鍵值對(僅適用於數字類型) FilterLessThanOrEqualTo // 篩選小於或等於目標值的鍵值對(僅適用於數字類型) FilterContains // 篩選包含目標值的字串鍵值對(僅適用於字串類型) FilterNotContains // 篩選不包含目標值的字串鍵值對(僅適用於字串類型) )
type MergeConflictResolutionStrategy ¶
type MergeConflictResolutionStrategy int
MergeConflictResolutionStrategy 定義鍵衝突時的處理策略
const ( MergeDefault MergeConflictResolutionStrategy = iota // 默認策略:遇到衝突時返回錯誤 MergeUseFirst // 使用第一個 map 的值 MergeUseSecond // 使用第二個 map 的值 MergeAddValues // 將兩個值相加(僅適用於數字類型) MergeCustomResolver // 使用自訂的 resolver 函數 )