web-dev-qa-db-ja.com

スライスを固定サイズの配列に変換する方法は?

固定サイズの配列をスライスから変換したい:

func gen(bricks []Brick) {
    if len(bricks) == 16 {
        if check(Sculpture{bricks}) {
            var b [16]Brick = bricks[0:16];
        }
     }
}

しかし、これは結果として:

 cannot use bricks[0:16] (type []Brick) as type [16]Brick in assignment

スライスを固定サイズの配列に変換する方法は?

27
thi gg

copyを使用する必要があります:

_slice := []byte("abcdefgh")

var arr [4]byte

copy(arr[:], slice[:4])

fmt.Println(arr)
_

Aedolonが指摘するように、あなたはまた使用することができます

_copy(arr[:], slice)
_

コピーは常に最小のlen(src)およびlen(dst)バイトのみをコピーするため。

51
inf