53 lines
		
	
	
		
			798 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			798 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package helper
 | |
| 
 | |
| /*
 | |
| 判断是否存在
 | |
| 
 | |
|   - @arr 数组
 | |
|   - @value 值
 | |
| */
 | |
| func ArrayAny[T comparable](arr []T, value T) bool {
 | |
| 	for _, v := range arr {
 | |
| 		if v == value {
 | |
| 			return true
 | |
| 		}
 | |
| 	}
 | |
| 	return false
 | |
| }
 | |
| 
 | |
| // 定义一个条件函数类型
 | |
| type ConditionFunc[T any] func(T) bool
 | |
| 
 | |
| /*
 | |
| 判断是否存在
 | |
| 
 | |
|   - @arr 数组
 | |
| 
 | |
|   - @condition 判断函数
 | |
| 
 | |
|     @return 对象指针
 | |
| */
 | |
| func ArrayAnyExtension[T any](arr *[]T, condition ConditionFunc[T]) *T {
 | |
| 	for _, v := range *arr {
 | |
| 		if condition(v) {
 | |
| 			return &v
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| func RemoveDuplicates(nums []int64) []int64 {
 | |
| 	m := make(map[int64]bool)
 | |
| 	result := []int64{}
 | |
| 
 | |
| 	for _, num := range nums {
 | |
| 		if !m[num] {
 | |
| 			m[num] = true
 | |
| 			result = append(result, num)
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	return result
 | |
| }
 |