Verwenden Sie schnell sizeof mit Int32 Array

8

Ich möchte die Länge eines Arrays mit "sizeof" erhalten. Ich habe alles versucht. Dies ist die Fehlermeldung: "[Int32] ist nicht in T.Type"

konvertierbar

Das Array muss Int32 sein.

%Vor%     
Darx 07.09.2014, 19:45
quelle

2 Antworten

19

Sie können die Anzahl der Elemente in einem Array einfach mit

ermitteln %Vor%

und die Gesamtzahl der Bytes seiner Elemente mit

%Vor%

sizeof wird mit Typen und sizeofValue mit Werten verwendet, also beide

%Vor%

würde kompilieren . Aber das gibt Ihnen die Größe von struct Array , nicht die Größe des Elementspeichers.

    
Martin R 07.09.2014, 19:51
quelle
1

In Xcode 8 mit Swift 3 Beta 6 gibt es keine Funktion sizeof (). Aber wenn Sie möchten, können Sie eine für Ihre Bedürfnisse definieren. Die gute Nachricht ist, dass diese neue Funktion funktioniert wie erwartet mit Ihrem Array.

%Vor%

Sie benötigen alle Versionen der Funktion sizeof, um die Größe einer Variablen zu ermitteln und die richtige Größe eines Datentyps und eines Arrays zu erhalten.

Wenn Sie nur die zweite Funktion definieren, dann ergeben sizeof (UInt8.self) und sizeof (Bool.self) "8". Wenn Sie nur die ersten beiden Funktionen definieren, ergibt sizeof (testArray) "8".

    
j.s.com 19.08.2016 12:43
quelle

Tags und Links