tag:blogger.com,1999:blog-4268957663143011719.post4251806108515610196..comments2022-05-11T21:45:15.843+09:00Comments on GDG KOBE: Go言語 スライスのappendについてAnonymoushttp://www.blogger.com/profile/14409101362752521323noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-4268957663143011719.post-44190315632743208032013-02-07T23:18:47.318+09:002013-02-07T23:18:47.318+09:00英語半分しか読んでない(読めてない)ですが、それっぽい事書いてますね。
appendの定義も同じなの...英語半分しか読んでない(読めてない)ですが、それっぽい事書いてますね。<br />appendの定義も同じなので、というか、"..."についてはどれも同じだと思うので、理由としては合ってそうですね。<br />見分けてくれたら楽なんですけど(笑)<br />scarvizhttps://www.blogger.com/profile/00532387099288576822noreply@blogger.comtag:blogger.com,1999:blog-4268957663143011719.post-74571533658815418462013-02-07T23:11:42.358+09:002013-02-07T23:11:42.358+09:00ありがとうございます!
なるほど。最初説明を読んだときは、引数に渡したスライスが追加されて返って来る...ありがとうございます!<br />なるほど。最初説明を読んだときは、引数に渡したスライスが追加されて返って来るのかと思ってましたが、内部的に再作成するかどうかを判断してるということなんですね。<br />そもそも、スライスを引数で渡しても参照渡しではないので、それに追加されて返ってくる事は無いですね。scarvizhttps://www.blogger.com/profile/00532387099288576822noreply@blogger.comtag:blogger.com,1999:blog-4268957663143011719.post-75779735923468238142013-02-06T23:25:39.548+09:002013-02-06T23:25:39.548+09:00http://golang.org/ref/spec#Calls
にちゃんと説明ありました。
......http://golang.org/ref/spec#Calls<br />にちゃんと説明ありました。<br />...Type: でType指定してますから<br />なんでもかんでも渡す、というものではないようなので、<br />コンパイル時にちゃんとちぇっく入りそうですね。<br /><br />append固有の話は調べてませんが...<br />Anonymoushttps://www.blogger.com/profile/14409101362752521323noreply@blogger.comtag:blogger.com,1999:blog-4268957663143011719.post-69813279344298293482013-02-06T04:45:18.263+09:002013-02-06T04:45:18.263+09:00大きさが分かっている場合は、intSlice := make([]int, 0,10)のようにして、...大きさが分かっている場合は、intSlice := make([]int, 0,10)のようにして、キャパシティ(長さではない)を指定してやるといいようですよ。appendした際にバックにある配列が再生成されないようです。<br />http://golang.org/pkg/builtin/#appendtenntennhttps://www.blogger.com/profile/05651777975880309984noreply@blogger.comtag:blogger.com,1999:blog-4268957663143011719.post-44626650566574419542013-02-06T02:06:00.217+09:002013-02-06T02:06:00.217+09:00僕も気になったので、ちょっと調べてみました。
結論としては、ちゃんと分かりませんでした・・・。
調査...僕も気になったので、ちょっと調べてみました。<br />結論としては、ちゃんと分かりませんでした・・・。<br />調査した結果だけ。<br /><br />実処理ではなく、ドキュメント用に用意されている<br />$GOROOT/src/pkg/builtin/builtin.go<br />では、appendは、<br />func append(slice []Type, elems ...Type) []Type<br />と定義されています。<br />elemsは可変長パラメータになっているため、要素を渡すと、その要素のスライスを作成するそうです。<br />ここで追加要素ではなくスライスを足したい時に、もし"..."という記号(?)がなければ、<br />スライスのスライスを作成することになります。<br />なので、足し合わせるスライスには明示的に"..."を付けているのではないかなと思います。<br /><br />ただ、追加要素なのかスライス自体なのかは、スライスの場合に"..."を付けないとエラーになるので、<br />見分けれるんじゃないかなとも思うので、実際のところは分かりません。<br />分かる方いたら教えてください!scarvizhttps://www.blogger.com/profile/00532387099288576822noreply@blogger.comtag:blogger.com,1999:blog-4268957663143011719.post-12891969139424317012013-01-31T13:23:44.950+09:002013-01-31T13:23:44.950+09:00append(slice1, slice2...) の"..."は
正確には何の...append(slice1, slice2...) の"..."は<br />正確には何の意味があるんでしょうか?<br />気になります!Anonymoushttps://www.blogger.com/profile/14409101362752521323noreply@blogger.com