79 / 103

Type switches

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.

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

Topshiriqlar

Yechimni kodning pastki qismidagi Topshiriqlar bo'limiga yozing, so'ng Submit tugmasini bosing. Mavzu mustahkam o'zlashishi uchun ikkala topshiriqni ham bajaring.

1-topshiriq

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".

2-topshiriq

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.