Methods on Generic Types
Generic turlar ustidagi metodlar
Generic struct bir nechta tur parametriga ega bo'lishi mumkin, va uning metodlari yangi, boshqacha kombinatsiyadagi generic tur qaytarishi ham mumkin. Klassik misol — ikkita bog'liq bo'lmagan qiymatni birga saqlaydigan Pair:
type Pair[A, B any] struct {
First A
Second B
}
func (p Pair[A, B]) Swap() Pair[B, A] {
return Pair[B, A]{First: p.Second, Second: p.First}
}Swap metodi Pair[A, B]ni qabul qiladi va turlari almashtirilgan Pair[B, A]ni qaytaradi — bu Go generics'ining kuchini ko'rsatadi: tur parametrlari nafaqat saqlanadi, balki metod natijasida yangi kombinatsiyada qayta tuzilishi ham mumkin.
>_ Exercise
First A va Second B maydonlariga ega Pair[A, B any] struct'ini yozing. Swap() Pair[B, A] metodini yozing — u maydonlarni almashtirilgan holda yangi Pair qaytaradi.
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
Bir nechta tur parametriga ega generic struct (Pair[A, B any]) metodlari natijada boshqacha tur kombinatsiyasini (Pair[B, A]) qaytarishi mumkin. Bu generics'ning struct maydonlarini qattiq turlarga bog'lamasdan, moslashuvchan ma'lumot tuzilmalarini yaratish imkonini ko'rsatadi.
NEXT UP
Union Constraints: Combining Multiple Types
$ go run main.go
Kodingizni ishga tushiring