スライスのコピー

copy 関数を使う。コピー元のスライスより、コピー先のほうが長い場合はもちろん、短い場合でもエラーにならない。長さはコピー先のスライスに合わせられる。

package main

import "fmt"

func main() {
    a := []int{ 1,2,3,4,5,6,7,8 }
    b := []int{ 10,20,30,40,50,60,70,80,90,100 }
    c := []int{ 10,20,30,40 }
    fmt.Println(a)
    fmt.Println(b)
    fmt.Println(c)

    copy(b, a)
    copy(c, a)
    fmt.Println(b)
    fmt.Println(c)
}
^o^ > go run slice_copy.go
[1 2 3 4 5 6 7 8]
[10 20 30 40 50 60 70 80 90 100]
[10 20 30 40]
[1 2 3 4 5 6 7 8 90 100]
[1 2 3 4]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください