Sobes.tech
Junior — Middle

Кои са вградените типове данни в Go, които позволяват извършване на операции за сравнение?

sobes.tech AI

Отговор от 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 := "ябълка"
    s2 := "банан"
    fmt.Println(s1 == s2) // false
}