Tip switch'lari
Tip switch'i (type switch) bir necha tip tasdiqlashini ketma-ket bajarishga imkon beruvchi konstruksiya.
Tip switch'i oddiy switch operatoriga o'xshaydi, lekin unda caselar qiymatlarni emas, tiplarni belgilaydi va ular berilgan interface qiymati saqlayotgan qiymat tipiga nisbatan solishtiriladi.
switch v := i.(type) {
case T:
// bu yerda v ning tipi T
case S:
// bu yerda v ning tipi S
default:
// mos kelmadi; bu yerda v ning tipi i bilan bir xil
}
Tip switch'idagi e'lon i.(T) tip tasdiqlashi bilan bir xil sintaksisga ega, faqat aniq T tipi o'rniga type kalit so'zi yoziladi.
Bu switch operatori i interface qiymati T yoki S tipidagi qiymatni saqlayotganini tekshiradi.
T va S caselarining har birida v o'zgaruvchisi mos ravishda T yoki S tipida bo'ladi va i saqlayotgan qiymatni o'z ichiga oladi.
Standart (default) holatda (hech qanday moslik yo'q bo'lganda) v o'zgaruvchisi i bilan bir xil interface tipiga va qiymatiga ega bo'ladi.
Yechimni kodning pastki qismidagi
Topshiriqlarbo'limiga yozing, so'ng Submit tugmasini bosing. Mavzu mustahkam o'zlashishi uchun ikkala topshiriqni ham bajaring.
Tur(i any) string funksiyasini tip switch'i bilan yozing: int uchun "int", string uchun "string", bool uchun "bool", []int uchun "[]int", qolgan barcha tiplar uchun "noma'lum".
SonlarYigindisi(list []any) float64 funksiyasini tip switch'i bilan yozing: int va float64 elementlarni (float64 ga aylantirib) qo'shsin, qolganlarini e'tiborsiz qoldirsin. Masalan, []any{1, 2.5, "x"} — 3.5.