GoDasturchi
Methods on Generic Types

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:

example.go
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.

Hints (0/2)

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

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

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:

example.go
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.

Hints (0/2)

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