Как создать перегруженную функцию в golang?

Как сделать, что б одна функция и та же могла принимать разного типа параметры?
например, если она получает входящий параметр int то делается одно, если string-то другое.
например

func myfunc(??? ){
    //какое-нибудь одинаковое действие для обоих вариантов
    log.Println("Мне передали число,идём по пути 1")//или...
    log.Println("Мне передали строку,идём по пути 2")
    }


Или надо писать 2 разные функции?
  • Вопрос задан
  • 224 просмотра
Решения вопроса 1
@TwoRS Автор вопроса
Решил play.golang.org/p/EUmI1N2OYp
func f(v interface{}) {
    switch v.(type) {
    case int:
        fmt.Println("int", v)
    case string:
        fmt.Println("string", v)
    default:
        panic(fmt.Sprintf("f: unsupported type %T", v))
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
Зря вы так)) Пользуйтесь статической типизацией, а не заменяйте ее динамической там, где в этом нет необходимости))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы