Tôi đã cố gắng xác định cấu trúc có giá trị chuỗi (tên). reflect.TypeOf
trả về Type
.xác nhận loại golang bằng cách sử dụng reflect.Typeof()
Nhưng xác nhận loại cần một type
.
Tôi làm cách nào để có thể truyền Type
đến type
?
Hoặc bất kỳ đề xuất nào để xử lý?
http://play.golang.org/p/3PJG3YxIyf
package main
import (
"fmt"
"reflect"
)
type Article struct {
Id int64 `json:"id"`
Title string `json:"title",sql:"size:255"`
Content string `json:"content"`
}
func IdentifyItemType(name string) interface{} {
var item interface{}
switch name {
default:
item = Article{}
}
return item
}
func main() {
i := IdentifyItemType("name")
item := i.(Article)
fmt.Printf("Hello, item : %v\n", item)
item2 := i.(reflect.TypeOf(i)) // reflect.TypeOf(i) is not a type
fmt.Printf("Hello, item2 : %v\n", item2)
}
Điều này hoàn toàn không thể thực hiện được trong Go.Xác nhận kiểu xác nhận kiểu tĩnh cố định biên dịch-thời gian cố định. Bạn phải làm lại giải pháp của bạn. – Volker
Cảm ơn nhận xét. Nó rất rõ ràng! – dorajistyle