この記事は、go 言語 チュートリアル コラムから、go で Slice を使用する際の注意事項を共有するために提供されたものです。
この記事では、Go でのスライスの使用について説明します。次のプログラムを見てみましょう。
package mainimport ( "fmt" )func main() { var array [10]int var slice = array[5:6] fmt.Println("lenth of slice: ", len(slice)) fmt.Println("capacity of slice: ", cap(slice)) fmt.Println(&slice[0] == &array[5])}
次に、このプログラムを見て、自分で実行してみましょう。実践こそが最良の教師です。
package mainimport ( "fmt")func AddElement(slice []int, e int) []int { return append(slice, e) }func main() { var slice []int slice = append(slice, 1, 2, 3) newSlice := AddElement(slice, 4) fmt.Println(&slice[0] == &newSlice[0])}
次に、このプログラムがどのように出力されるかを確認し続けます。それについて考えることも、プログラムを実行することもできます:
package mainimport ( "fmt")func main() { orderLen := 5 order := make([]uint16, 2 * orderLen) pollorder := order[:orderLen:orderLen] lockorder := order[orderLen:][:orderLen:orderLen] fmt.Println("len(pollorder) = ", len(pollorder)) fmt.Println("cap(pollorder) = ", cap(pollorder)) fmt.Println("len(lockorder) = ", len(lockorder)) fmt.Println("cap(lockorder) = ", cap(lockorder))}
上記のプログラムを実行した後、疑問が生じ、読み続けてください。プログラムは、長さ 10 のスライス順序、pollorder、lockorder をそれぞれ定義します。 order 順序スライス [start ,stop,max] 操作によってスライスが生成され、最後にプログラムは、polorder と lockorder の容量と長さをそれぞれ出力します。
以上がGo で Slice を使用する際のメモを共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。