maputil

package
v0.8.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 10, 2025 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

maputil/filter.go

maputil/maputil.go

maputil/merge.go

maputil/remove.go

Index

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 Invert

func Invert[K comparable, V comparable](m map[K]V) map[V]K

Invert 函數,反轉 map 的鍵和值的位置

func Keys

func Keys[K comparable, V any](m map[K]V) []K

Keys 函數,返回 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 如果鍵不存在或者值不匹配,則報錯。可以選擇忽略錯誤。

func Values

func Values[K comparable, V any](m map[K]V) []V

Values 函數,返回 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 函數
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL