Déverrouiller les secrets de la taille de mémoire variable
Obtenir la taille de mémoire d'une variable est un aspect crucial de la gestion de la mémoire en programmation. Dans Go, la fonction "unsafe.Sizeof" permet de découvrir ces précieuses informations.
Syntaxe :
func Sizeof(x interface{}) uintptr
Utilisation :
Pour déterminer la taille mémoire d'une variable, passez-la simplement en argument à "unsafe.Sizeof". Il renvoie la taille en octets occupés par la valeur de la variable.
import "unsafe" var i int = 1 fmt.Printf("Size of i: %d bytes", unsafe.Sizeof(i))
Exemple :
Le code suivant montre comment obtenir la taille de la mémoire de diverses données types :
package main import "fmt" import "unsafe" func main() { a := int(123) b := int64(123) c := "foo" d := struct { FieldA float32 FieldB string }{0, "bar"} fmt.Printf("a: %T, %d bytes\n", a, unsafe.Sizeof(a)) fmt.Printf("b: %T, %d bytes\n", b, unsafe.Sizeof(b)) fmt.Printf("c: %T, %d bytes\n", c, unsafe.Sizeof(c)) fmt.Printf("d: %T, %d bytes\n", d, unsafe.Sizeof(d)) }
Sortie :
a: int, 4 bytes b: int64, 8 bytes c: string, 3 bytes d: struct { FieldA float32; FieldB string }, 16 bytes
Remarque :
"unsafe.Sizeof" doit être utilisé avec prudence car cela peut conduire à un comportement indéfini s’il est utilisé incorrectement. Certaines plates-formes peuvent également restreindre son utilisation, à l'instar du package "reflect", qui fournit également une méthode pour obtenir la taille de la mémoire d'une variable via "reflect.TypeOf(variable).Size()".
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!