#聞きたいこと
ある関数に変数のポインタを渡しました
go
1func main() { 2 var salt bool 3 call(&salt) 4 fmt.Println(salt) //true 5} 6 7func call(lim *bool) { 8 *lim = true 9}
これ、関数内で
*lim = true
としなきゃいけませんよね
でも、例えば、anaconda(twitterAPI)を使った時の
go
1 2func main() { 3 api := createApi() //apiには*anaconda.TwitterApiが代入される 4 something(api) 5} 6/* 7apiを作って返す関数 8*/ 9func createAPI() *anaconda.TwitterApi { 10 anaconda.SetConsumerKey("KEY") 11 anaconda.SetConsumerSecret("SEC") 12 api := anaconda.NewTwitterApi("TOKEN", "SEC") 13 return api 14{ 15 16func something(api *anaconda.TwitterApi) { 17 f, err := api.GetFriendsIds(nil) //これはフォローしてる人のIdをスライスとして返す関数です 18 //https://godoc.org/github.com/ChimeraCoder/anaconda#TwitterApi.GetFriendsIds 19 if err != nil { 20 log.Println(err) 21 } 22}
この場合のsomething()関数では
*anaconda.TwitterApiの関数を使う際
*api.GetFriendsIds(nil)
ではなく
api.GetFriendsIds(nil)
になりますよね?
なんで上の例ではlimに対して*
をつけなければいけなくて
下の例ではapiに対して*
をつけないんですか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。