Compare commits
	
		
			2 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b0d3ce8c1c | |||
| 021465e524 | 
| @@ -31,16 +31,16 @@ func CompareIntArr(arr1 []int, arr2 []int) bool { | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func CompareArr[T OrderedConstraint](arr1 []T, arr2 []T) bool { | ||||
| func CompareArr[T OrderedConstraint](arr1 []T, arr2 []T) int { | ||||
|  | ||||
| 	for i := 0; i < len(arr1) || i < len(arr2); i++ { | ||||
|  | ||||
| 		if i < len(arr1) && i < len(arr2) { | ||||
|  | ||||
| 			if arr1[i] < arr2[i] { | ||||
| 				return true | ||||
| 				return -1 | ||||
| 			} else if arr1[i] > arr2[i] { | ||||
| 				return false | ||||
| 				return +2 | ||||
| 			} else { | ||||
| 				continue | ||||
| 			} | ||||
| @@ -49,17 +49,17 @@ func CompareArr[T OrderedConstraint](arr1 []T, arr2 []T) bool { | ||||
|  | ||||
| 		if i < len(arr1) { | ||||
|  | ||||
| 			return true | ||||
| 			return +1 | ||||
|  | ||||
| 		} else { // if i < len(arr2) | ||||
|  | ||||
| 			return false | ||||
| 			return -1 | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	return false | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func CompareString(a, b string) int { | ||||
|   | ||||
| @@ -1,5 +1,10 @@ | ||||
| package langext | ||||
|  | ||||
| type MapEntry[T comparable, V any] struct { | ||||
| 	Key   T | ||||
| 	Value V | ||||
| } | ||||
|  | ||||
| func MapKeyArr[T comparable, V any](v map[T]V) []T { | ||||
| 	result := make([]T, 0, len(v)) | ||||
| 	for k := range v { | ||||
| @@ -8,6 +13,14 @@ func MapKeyArr[T comparable, V any](v map[T]V) []T { | ||||
| 	return result | ||||
| } | ||||
|  | ||||
| func MapValueArr[T comparable, V any](v map[T]V) []V { | ||||
| 	result := make([]V, 0, len(v)) | ||||
| 	for _, mv := range v { | ||||
| 		result = append(result, mv) | ||||
| 	} | ||||
| 	return result | ||||
| } | ||||
|  | ||||
| func ArrToMap[T comparable, V any](a []V, keyfunc func(V) T) map[T]V { | ||||
| 	result := make(map[T]V, len(a)) | ||||
| 	for _, v := range a { | ||||
| @@ -16,6 +29,17 @@ func ArrToMap[T comparable, V any](a []V, keyfunc func(V) T) map[T]V { | ||||
| 	return result | ||||
| } | ||||
|  | ||||
| func MapToArr[T comparable, V any](v map[T]V) []MapEntry[T, V] { | ||||
| 	result := make([]MapEntry[T, V], 0, len(v)) | ||||
| 	for mk, mv := range v { | ||||
| 		result = append(result, MapEntry[T, V]{ | ||||
| 			Key:   mk, | ||||
| 			Value: mv, | ||||
| 		}) | ||||
| 	} | ||||
| 	return result | ||||
| } | ||||
|  | ||||
| func CopyMap[K comparable, V any](a map[K]V) map[K]V { | ||||
| 	result := make(map[K]V, len(a)) | ||||
| 	for k, v := range a { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user