Sobes.tech
Junior — Middle

Comparable interfeysi nima ekanligini va qanday ishlatilishini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

Go tilida Comparable nomli alohida standart interfeys mavjud emas, ammo tilda qiymatlarni taqqoslash uchun == va != operatorlari yordamida taqqoslash imkoniyati mavjud.

Ammo, agar ob'ektlarni taqqoslash uchun metodni belgilovchi interfeys haqida gapiradigan bo'lsak, odatda, foydalanuvchi interfeysini yaratishadi, masalan:

// Comparable interfeys, Compare metodi bilan
// Agar joriy ob'ekt boshqa ob'ektdan kichik bo'lsa, manfiy son qaytaradi,
// 0 agar teng bo'lsa, va musbat bo'lsa,.
type Comparable interface {
    Compare(other interface{}) int
}

Bunday interfeys, turli turlardagi ob'ektlarni saralash yoki taqqoslash imkonini beradi.

Foydalanish misoli:

type IntWrapper int

func (a IntWrapper) Compare(b interface{}) int {
    other := b.(IntWrapper)
    if a < other {
        return -1
    } else if a > other {
        return 1
    }
    return 0
}

Shunday qilib, Comparable interfeysi, ob'ektlarni tartiblash yoki taqqoslash uchun taqqoslash metodini amalga oshirishni talab qiladigan shartnoma hisoblanadi.