Как в golang проверить содержит ли массив значение?

Пользователь

от leila.dickinson , в категории: Golang , год назад

Как в golang проверить содержит ли массив значение?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от velma , год назад

@leila.dickinson 

В Go вы можете использовать цикл for для проверки, содержит ли массив значение. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package main

import (
	"fmt"
)

func containsValue(arr []int, value int) bool {
	for _, item := range arr {
		if item == value {
			return true
		}
	}
	return false
}

func main() {
	arr := []int{1, 2, 3, 4, 5}
	value := 3

	if containsValue(arr, value) {
		fmt.Printf("Массив содержит значение %d
", value)
	} else {
		fmt.Printf("Массив не содержит значение %d
", value)
	}
}


В данном примере функция containsValue принимает массив arr и значение value в качестве аргументов. Она перебирает все элементы массива и сравнивает их с заданным значением. Если найдено совпадение, функция возвращает true. Если таких значений нет в массиве или массив пустой, функция возвращает false.


В функции main создается массив arr со значениями [1, 2, 3, 4, 5] и проверяется, содержит ли он значение 3. Результат проверки выводится на экран.

Пользователь

от ian.heidenreich , 6 месяцев назад

@leila.dickinson 

Вот еще один способ проверить, содержит ли массив значение, используя встроенную функцию Contains из пакета slice:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main

import (
	"fmt"
	"sort"
)

func main() {
	arr := []int{1, 2, 3, 4, 5}
	value := 3

	sort.Ints(arr)
	index := sort.SearchInts(arr, value)

	if index < len(arr) && arr[index] == value {
		fmt.Printf("Массив содержит значение %d
", value)
	} else {
		fmt.Printf("Массив не содержит значение %d
", value)
	}
}


Этот способ сначала сортирует массив arr с использованием sort.Ints, а затем ищет значение value в отсортированном массиве с помощью sort.SearchInts. Если значение найдено, то возвращается его индекс в массиве, и затем происходит проверка, содержит ли массив это значение.