func Aaa(any interface{}) {
    switch w := any.(type) {
    case int:
        return func_111(w)
    case string:
        return func_222(w)
    }
}
Какой тип у w (который свитчом сравнивается с разными типами)? Выглядит как будто у w тип - это некий TYPETYPE, который можно сравнивать со встроенными типами. Но как тогда этот TYPETYPE успешно уходит в функцию func_111, которая ждёт строго int?
Рассмотрим первый case. Он говорит, что w равно int. Это равноценно тому, что написать if w == int, но это не компилируется.
Я бы ещё понял синтаксис:
func Aaa(any interface{}) {
    switch w := typeof(any) {
    case int:
        return func_111(any)  // w - это носитель названия типа, а не само значение. Само значение - any.
    case string:
        return func_222(any)
    }
}
Т.е. исходный switch-case должно быть можно переписать так:
if int == w {
    fmt.Printf("%d", w)    // INT
} else if string == w {
    fmt.Printf("%s", w)    // STRING
}
Но такой код не компилируется.



