I want to convert a fixed size array from a slice:
func gen(bricks []Brick) {
if len(bricks) == 16 {
if check(Sculpture{bricks}) {
var b [16]Brick = bricks[0:16];
}
}
}
But this results in:
cannot use bricks[0:16] (type []Brick) as type [16]Brick in assignment
How to convert a slice into a fixed size array?
You need to use copy
:
slice := []byte("abcdefgh")
var arr [4]byte
copy(arr[:], slice[:4])
fmt.Println(arr)
As Aedolon notes you can also just use
copy(arr[:], slice)
as copy will always only copy the minimum of len(src)
and len(dst)
bytes.