Type parameter'lar
Go funksiyalarini type parameter'lar yordamida bir nechta tipda ishlaydigan qilib yozish mumkin. Funksiyaning type parameter'lari funksiya argumentlaridan oldin, kvadrat qavslar ichida ko'rsatiladi.
func Index[T comparable](s []T, x T) int
Bu e'lon s — o'rnatilgan comparable cheklovini (constraint) qanoatlantiradigan har qanday T tipidagi slice ekanini bildiradi. x ham aynan shu tipdagi qiymat.
comparable— foydali cheklov bo'lib, u tipdagi qiymatlar ustida==va!=operatorlarini ishlatish imkonini beradi.
Bu misolda biz undan qiymatni mos kelguncha slice'ning barcha elementlari bilan solishtirish uchun foydalanamiz. Bu Index funksiyasi solishtirishni qo'llab-quvvatlaydigan har qanday tip uchun ishlaydi.
Yechimni kodning pastki qismidagi
Topshiriqlarbo'limiga yozing, so'ng Submit tugmasini bosing. Mavzu mustahkam o'zlashishi uchun ikkala topshiriqni ham bajaring.
Contains[T comparable](s []T, x T) bool generic funksiyasini yozing: x slice'da bor bo'lsa true qaytarsin. U int slice'lari uchun ham, string slice'lari uchun ham ishlashi kerak. Masalan, Contains([]string{"a", "b"}, "b") — true.
Max[T int | float64](a, b T) T generic funksiyasini yozing: ikki sonning kattasini qaytarsin (int | float64 — tip cheklovi (type constraint), ya'ni T faqat shu ikki tipdan biri bo'lishi mumkin). Masalan, Max(3, 7) — 7, Max(2.5, 1.5) — 2.5.