2017-11-30 13 views
0

Rubyコードサンプル:この特定のパックの例をクリスタルに複製するにはどうすればよいですか?

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

私はcrystal言語でこれを行うことができますどのように?

+0

Crystal GitHubの[この問題](https://github.com/crystal-lang/crystal/issues/276)を参照してください。 –

+0

可能なのはhttps://stackoverflow.com/questions/32725506/pack-the-contents-of-arr-into-a-binary-sequence-in-crystalのコピー –

+0

私は質問が「どのように私はアンパッククリスタル "では、"クリスタルにこの*特定の*パックの例をどのように複製するのですか "です。これは複製ではありません。おそらく質問はより一般的に言い表せます。 – RX14

答えて

5

IO#read_bytesメソッドを使用すると、多くの場所から整数を読み取ることができます。例

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

のために私はIOから直接読み込み、またはBytesタイプは、Crystalはるかに慣用で使用して格納し、しかしバイナリデータを格納するための文字列を使用しないことをお勧めします。

関連する問題