Sobes.tech
Back to questions
Junior — Middle
86

Какие существуют встроенные типы данных в Go, которые позволяют выполнять операции сравнения?

Answer from AI

sobes.tech AI

В Go операции сравнения поддерживаются для следующих встроенных типов данных:

  • Булевы значения (bool): можно сравнивать на равенство и неравенство.
  • Числовые типы (int, float32, float64, uint и др.): поддерживают все стандартные операции сравнения (==, !=, <, >, <=, >=).
  • Строки (string): сравниваются лексикографически с помощью операторов ==, !=, <, >, <=, >=.
  • Указатели: сравниваются на равенство и неравенство (указывают ли на один и тот же объект или nil).
  • Интерфейсы: сравниваются на равенство и неравенство, если динамические типы и значения сравнимы.
  • Массивы: сравниваются поэлементно, если элементы сравнимы.

Типы, которые нельзя сравнивать напрямую, например срезы (slice), карты (map), функции (func), не поддерживают операции сравнения, кроме проверки на nil.

Пример сравнения строк и чисел:

package main
import "fmt"

func main() {
    a := 10
    b := 20
    fmt.Println(a < b) // true

    s1 := "apple"
    s2 := "banana"
    fmt.Println(s1 == s2) // false
}