Можно ли в Go сделать поле в структуре кастомного типа?
Например:
- Есть структура с полем типа int:
type Channel struct {
Chan int `json:"chan"`
}
- Есть структура с полем типа string:
type Channel struct {
Chan string `json:"chan"`
}
Как можно сделать что-то подобное:
type Channel struct {
Chan CustomType `json:"chan"`
}
Какие в принципе есть варианты такое реализовать?
Ответы (2 шт):
Автор решения: Nik
→ Ссылка
Обьявление типа UserId. Тип UserId = int64
type UserId int64
Обьявление типа UserInfo.
type UserInfo struct {
id UserId
name string
password string
}
Обьявление типа UsersInfo.
type UsersInfo struct {
users []UserInfo
createdAt time.Time
}
Автор решения: Ayaz
→ Ссылка
Можно попробовать так
package main
import (
"fmt"
"reflect"
)
type Test struct {
data interface{}
}
func Test2(data interface{}) {
switch reflect.TypeOf(data).Kind() {
case reflect.String:
fmt.Println("строка")
case reflect.Int:
fmt.Println("инт")
}
}
func main() {
str := "Hello world"
number := 34
test := Test{}
test.data = str
Test2(test.data)
test.data = number
Test2(test.data)
}