gpt4 book ai didi

go - 为什么 *a{...} 间接无效?

转载 作者:IT老高 更新时间:2023-10-28 12:59:22 26 4
gpt4 key购买 nike

oauth.RequestToken 文字的无效间接(类型 oauth.RequestToken)

为什么下面这行无效?

func (s *Service) Callback(r *http.Request, req *RequestOauth, resp *Response) error {
c := endpoints.NewContext(r)
consumer.HttpClient=urlfetch.Client(c)
====>requestToken := *oauth.RequestToken{Token:req.Oauth_token, Secret:""}<======
b, err := TwitterApi(requestToken, req.Oauth_verifier)
resp.Message=b.Name
return err
}

func TwitterApi(requestToken *oauth.RequestToken, verificationCode string) (u *UserT, err error) {
accessToken, err := consumer.AuthorizeToken(requestToken, verificationCode)
if err != nil {log.Fatal(err)}
response, err := consumer.Get("https://api.twitter.com/1.1/account/verify_credentials.json", nil, accessToken)
if err != nil {log.Fatal(err)}
defer response.Body.Close()
b, err := ioutil.ReadAll(response.Body)
err = json.Unmarshal(b, &u)
return
}

最佳答案

这一行:

requestToken := *oauth.RequestToken{Token:req.Oauth_token, Secret:""}

字面意思是“创建一个 oauth.RequestToken 的实例,然后尝试将其作为指针取消引用。”即它试图通过文字结构值执行间接(指针)访问。

相反,您想创建实例并获取其地址 (&),从而产生一个指向 RequestToken 的指针 *oauth.RequestToken:

requestToken := &oauth.RequestToken{Token:req.Oauth_token, Secret:""}

或者,您可以将 token 创建为本地值,然后通过地址将其传递给 TwitterApi 函数:

requestToken := oauth.RequestToken{Token:req.Oauth_token, Secret:""}

b, err := TwitterApi(&requestToken, req.Oauth_verifier)

关于go - 为什么 *a{...} 间接无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20890850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com