Größe von einem byte-array golang
Ich habe ein []byte-Objekt und ich möchte die Größe in bytes. Gibt es ein äquivalent zu C ' s sizeof() in golang? Wenn nicht, Können Sie schlagen andere Wege, um das gleiche?
Wollen Sie die Länge, die Kapazität oder die Größe im Speicher? Sie können alle unterschiedlich sein.
Nein, len gibt die Anzahl der Objekte in einem array nicht die Größe in bytes des gesamten Arrays. Ich denke, @evanmcdonnal es richtig..
Sie erhalten nicht die Größe des Arrays mit
das ist falsch. Sie sind, diese in Scheiben schneiden und array, es ist kein Platz mit array und wenn Sie waren zu tun, ein black-box-Vergleich gegen das gleiche in C mit
Nein, ich bin nicht. Ich wählte meine Worte sorgfältig, und die Frage war über ein slice (
Nein, len gibt die Anzahl der Objekte in einem array nicht die Größe in bytes des gesamten Arrays. Ich denke, @evanmcdonnal es richtig..
Sie erhalten nicht die Größe des Arrays mit
binary.Size
erhalten Sie die length * data_type_size
. Dies kann sein, was Sie wollen, aber denken Sie daran die Größe des Arrays (Kapazität) ist oft anders.das ist falsch. Sie sind, diese in Scheiben schneiden und array, es ist kein Platz mit array und wenn Sie waren zu tun, ein black-box-Vergleich gegen das gleiche in C mit
sizeof
würde es wieder in die length * data_type_size
. Das heißt, Sie sind funktionell gleichwertig. sehen; tour.golang.org/moretypes/6 - Scheibe ist auf der nächsten Folie.Nein, ich bin nicht. Ich wählte meine Worte sorgfältig, und die Frage war über ein slice (
[]byte
), wo die Kapazität die Größe des zugrunde liegenden Arrays; Arrays wies auf die durch das Feld array
im slice struct. Die nächste Variante von C sizeof
zurückkehren würde, wird das gesamte array zugewiesene Größe, nicht den Bereich, den Sie verwenden.InformationsquelleAutor sr_149 | 2015-07-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um die Anzahl von bytes in einem byte-slice verwenden Sie die
len
Funktion:Wenn Sie meinen, die Anzahl der bytes, die in dem zugrunde liegenden array verwenden
cap
statt:Einem byte ist garantiert ein byte: https://golang.org/ref/spec#Size_and_alignment_guarantees.
InformationsquelleAutor Caleb
Ich denke, Ihre beste Wette wäre;
https://play.golang.org/p/HhJif66VwY
Zwar gibt es viele Optionen, wie einfach das importieren von unsicheren und Verwendung von sizeof;
Beachten Sie, dass für einige Arten, wie Scheiben,
Sizeof
geben Sie die Größe der Scheibe-Deskriptor, das ist wahrscheinlich nicht das, was Sie wollen. Auch, beachten Sie die Länge und Kapazität der Scheibe sind Verschieden und der Wert, der zurückgegeben wird, durch binäre.Größe spiegelt die Länge.Danke!!! 😀 die Kodierung/Binär-pkg
ja aber der OP könnte es mit einem byte-array, in dem Fall funktioniert es; play.golang.org/p/UQUcQYC9F3 ich persönlich denke, dass die Binär-Paket funktioniert besser, weil es nicht geben Ihnen die slice-Deskriptoren Größe, aber der OP hat, als für den Gegenwert von sizeof ist unsicher.Sizeof.
InformationsquelleAutor evanmcdonnal