自定义了一个post包,里面有两个结构体
```
type User struct {
Accurate int `json:"accurate"`
ForLogin int `json:"for_login"`
Account string `json:"account"`
Uname *Uname
}
type Uname struct {
Uname string `json:"name"`
}
```
现在在另外一个包里面设置了自定义类型并且调用
```
type PostUser post.User
type PostUname post.Uname
func SomeMethod() {
name := &PostUname{Uname: "张三"}
account := &PostUser{Accurate: 0, ForLogin: 1, Account: "user", Uname: name}
}
```
编译时不能通过,会提示name 不是post.Uanme 类型,这个如何转换呢,我尝试用断言还是不行,提示必须是interface类型。
我就是不想用post.Uanme这种方式才自定义的类型,否则就没必要这么做了。如果这个变量在当前文件使用很多次话就必须要每个前面都加post.,是出于这个目的。
#2
更多评论
name := &post.Uname{Uname: "张三"}
or
Uname: (*post.Uname)(name)
#1
2楼 <a href="/user/guosheng1987" title="@guosheng1987">@guosheng1987</a>
```golang
type PostUser = post.User
type PostUname = post.Uname
```
使用别名,但是不能拥有对象方法
#3