Elixirで、RubyのArray#packなことをする
5525 ワード
はじめに
-
Monacoinのtestnet4に、とあるコインベーストランザクションがあります
-
coinbase
のところの "coinbase": "03e9bc0a42656c6965766520696e20796f7572207370697269742e20476f20666f7274682e00000000"
これはなんと書いてあるのかなー? と
- 先頭のほうの
03e9bc0a
と00000000
を外した"42656c6965766520696e20796f7572207370697269742e20476f20666f7274682e"
を以下読んでみます
- 先頭のほうはたしかブロック高(だった気がする)
- うしろのほうのやつは0だからいいでしょう
- 16進文字列(上位ニブルが先)の形式になっています
-
Monacoin testnet4 Faucet |>
これ動かしているの私です
- 2017/10月か11月くらいから動かしています
Rubyなら
irb(main):002:0> ['42656c6965766520696e20796f7572207370697269742e20476f20666f7274682e'].pack('H*')
=> "Believe in your spirit. Go forth."
Elixirなら
- 最近はElixirにハマっていまして、Elixirならどうやるんやろうなあーとおもってiexと戯れてみました
-
Enum.chunk_every/2 がステキです!
iex(8)> (
...(8)> "42656c6965766520696e20796f7572207370697269742e20476f20666f7274682e"
...(8)> |> String.codepoints
...(8)> |> Enum.chunk_every(2)
...(8)> |> Enum.map(fn [a,b] -> "#{a}#{b}" end)
...(8)> |> Enum.map(&String.to_integer(&1, 16))
...(8)> |> List.to_string
...(8)> )
"Believe in your spirit. Go forth."
- もっと短くできるかもしれませんが愚直にやってみました
- Thanks Elixir!
- できた、できた
coinbase
のところの "coinbase": "03e9bc0a42656c6965766520696e20796f7572207370697269742e20476f20666f7274682e00000000"
これはなんと書いてあるのかなー? と
- 先頭のほうの
03e9bc0a
と00000000
を外した"42656c6965766520696e20796f7572207370697269742e20476f20666f7274682e"
を以下読んでみます - 先頭のほうはたしかブロック高(だった気がする)
- うしろのほうのやつは0だからいいでしょう
- 16進文字列(上位ニブルが先)の形式になっています
Monacoin testnet4 Faucet |>
これ動かしているの私です
- 2017/10月か11月くらいから動かしています
irb(main):002:0> ['42656c6965766520696e20796f7572207370697269742e20476f20666f7274682e'].pack('H*')
=> "Believe in your spirit. Go forth."
Elixirなら
- 最近はElixirにハマっていまして、Elixirならどうやるんやろうなあーとおもってiexと戯れてみました
-
Enum.chunk_every/2 がステキです!
iex(8)> (
...(8)> "42656c6965766520696e20796f7572207370697269742e20476f20666f7274682e"
...(8)> |> String.codepoints
...(8)> |> Enum.chunk_every(2)
...(8)> |> Enum.map(fn [a,b] -> "#{a}#{b}" end)
...(8)> |> Enum.map(&String.to_integer(&1, 16))
...(8)> |> List.to_string
...(8)> )
"Believe in your spirit. Go forth."
- もっと短くできるかもしれませんが愚直にやってみました
- Thanks Elixir!
- できた、できた
iex(8)> (
...(8)> "42656c6965766520696e20796f7572207370697269742e20476f20666f7274682e"
...(8)> |> String.codepoints
...(8)> |> Enum.chunk_every(2)
...(8)> |> Enum.map(fn [a,b] -> "#{a}#{b}" end)
...(8)> |> Enum.map(&String.to_integer(&1, 16))
...(8)> |> List.to_string
...(8)> )
"Believe in your spirit. Go forth."
Author And Source
この問題について(Elixirで、RubyのArray#packなことをする), 我々は、より多くの情報をここで見つけました https://qiita.com/torifukukaiou/items/ec81a4e5a0e3464b00ca著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .