2017-11-30 3 views
0

Ruby Codebeispiel:Wie repliziere ich dieses spezifische Packbeispiel in Crystal?

"\u0000\u0000\u0000\u0002".unpack('N')[0] #=> 2 

Wie kann ich dies mit crystal Sprache zu tun?

+0

Siehe [diese Ausgabe] (https://github.com/crystal-lang/crystal/issues/276) auf dem Crystal GitHub. –

+0

Mögliche dupliziert von https://stackoverflow.com/questions/32725506/pack-the-contents-of-arr-into-a-binary-sequence-in-crystal –

+0

Ich denke, die Frage ist nicht "wie verwende ich entpacken in Crystal "ist es" wie repliziere ich dieses * spezifische * Packbeispiel in Crystal ", das kein Duplikat ist. vielleicht könnte die Frage jedoch generischer formuliert werden. – RX14

Antwort

5

Sie können die Methode IO#read_bytes verwenden, um Ganzzahlen von vielen Stellen zu lesen. Zum Beispiel

io = IO::Memory.new("\u0000\u0000\u0000\u0002") 
io.read_bytes(UInt32, format: IO::ByteFormat::NetworkEndian) # => 2 

ich gegen die Verwendung von Strings raten würde, obwohl binäre Daten zu speichern, direkt von IO Lesen oder Speichern des Bytes Typ mit viel mehr idiomatische Kristall.

Verwandte Themen