我有struct AccessToken
作为外部库的一部分,我自己使用该库。我想返回这种类型的值,但我没有看到为什么我的内部实现应该从外部可见的任何原因。类型别名看起来很棒。
type AccessToken oauth.AccessToken
但是我在尝试下一步时遇到错误:
func Auth(key string, secret string) *AccessToken {
...
var token oauth.AccessToken = AuthorizeToken(...)
return AccessToken(*token)
}
错误:
cannot use AccessToken(*accessToken) (type AccessToken) as type *AccessToken in return argument
很明显,我可以通过fiend复制结构字段。但有没有办法使用别名?
答案 0 :(得分:5)
我不知道你得到了什么错误,但是这个表达式错了:
func Auth(key string, secret string) *AccessToken {
...
var token oauth.AccessToken = AuthorizeToken(...)
return AccessToken(*token)
}
它说“取token
的指针值(它根本不是指针,意味着它是语法错误),将其转换为AccessToken
并返回它”。但是该函数返回指向 AccessToken的指针,而不是值,因此这是无效的。
如果要返回指向AccessToken
类型的指针,代码应该更符合以下几行:
func Auth(key string, secret string) *AccessToken {
...
token := AccessToken(AuthorizeToken(...))
return &token
}