web-dev-qa-db-fra.com

Comment convertir une tranche en tableau de taille fixe?

Je veux convertir un tableau de taille fixe à partir d'une tranche:

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

Mais cela se traduit par:

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

Comment convertir une tranche en un tableau de taille fixe?

27
thi gg

Vous devez utiliser copy:

slice := []byte("abcdefgh")

var arr [4]byte

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

fmt.Println(arr)

Comme le note Aedolon, vous pouvez également simplement utiliser

copy(arr[:], slice)

as copy ne copiera toujours que le minimum de len(src) et len(dst) octets.

51
inf