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.