Нет, вы не можете. Но для вашей цели вы должны реализовать пользовательский интерфейс.
// define an interface that do something you need
type Doer interface {
DoSomething();
}
Затем вы определяете пользовательский тип и реализуете все необходимые функции определенного интерфейса:
type StringTypeOne string
type StringTypeTwo string
func (s StringTypeOne) DoSomething() {
}
func (s StringTypeTwo) DoSomething() {
}
Затем вы можете создать функцию, получившую интерфейс в качестве параметра:
func handleString(s Doer) {
}
Этот метод может принимать как StringTypeOne
, так и StringTypeTwo
в качестве параметра.