Sobes.tech
Junior — Middle

Որո՞նք են Go-ում ներկառուցված տվյալների տեսակները, որոնք թույլ են տալիս կատարել համեմատական գործողություններ։

sobes.tech AI

Պատասխան AI-ից

Go լեզվում համեմատության գործողությունները աջակցվում են հետևյալ ներքին տվյալների տիպերի համար՝

  • Բուլյան արժեքներ (bool): կարող են համեմատվել հավասարության և անհավասարության համար:
  • Թվային տիպեր (int, float32, float64, uint և այլն): աջակցում են բոլոր ստանդարտ համեմատության գործողություններին (==, !=, <, >, <=, >=):
  • Տողեր (string): համեմատվում են լեքսիկոգրաֆիկ կերպով ==, !=, <, >, <=, >= օպերատորների միջոցով:
  • Ցանցներ (pointer): համեմատվում են հավասարության և անհավասարության համար (նաև նշում են նույն օբյեկտին կամ nil):
  • Ինտերֆեյսներ (interface): համեմատվում են հավասարության և անհավասարության համար, եթե դինամիկ տիպերը և արժեքները համեմատելի են:
  • Արreyներ (array): համեմատվում են տարր առ տարր, եթե տարրերը համեմատելի են:

Տիպերը, որոնք չեն կարող համեմատվել ուղղակի, օրինակ՝ սլայսեր (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
}