Sobes.tech
Junior — Middle

Кадом намудҳои додаҳои дарунсохти Go, ки имкон медиҳанд амалиётҳои муқоиса карданро иҷро кунанд?

sobes.tech AI

Ҷавоб аз AI

Го тилида, муқоиса амалиётлари қуйидаги ўрнатилган турлар учун қўллаб-қувватланади:

  • Булинг қийматлар (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
}