はじめに
- Elixir楽しんでいますか
-
Integer.to_string/2
- これが肝です
- もう少し具体例をまじえて書いておきます
10進数 -> 16進数へ変換したい
- 一般的にはスポイトツールとでもいうのでしょうか、macOSなら
その他 > Digital Color Meter
というものです - 10進数のRGBを16進数に変えたいことありますよね
- たとえば、autoracexというグループを立ち上げましてですね、背景色をElixir色にしたいわけですよ
- このグループのテーマ曲はもちろんセクシャルバイオレットNo.1であります
- You make me feel good
-
IEx(Elixir's interactive shell)
を立ち上げて以下のような感じで変換できます
iex> [74, 46, 94] |> Enum.map(&Integer.to_string(&1, 16)) |> Enum.join() |> String.downcase() |> (&("##{&1}")).()
"#4a2e5e"
-
(&("##{&1}")).()
なんて書き方は格好つけているだけです- そうです
- 文字通り、
- $\huge{カッコ()ばっかりつけているだけです}$
- 次に書いているものは、の別な書き方です
iex> (
...> [74, 46, 94]
...> |> Enum.map(fn i -> Integer.to_string(i, 16) end)
...> |> Enum.join()
...> |> String.downcase()
...> |> (fn s -> "#" <> s end).()
...> )
"#4a2e5e"
- IO.inspect/2を途中にはさみながら書くとそれぞれの関数を通ったあとの結果がみれて、ありがとナイスです
(
[74, 46, 94]
|> Enum.map(fn i -> Integer.to_string(i, 16) end)
|> IO.inspect()
|> Enum.join()
|> IO.inspect()
|> String.downcase()
|> IO.inspect()
|> (fn s -> "#" <> s end).()
)
(IExにそのまま貼れます)
使っている関数たち
使っているマクロたち
リンク先の公式ドキュメントをみていただくとExamples
が書いてあってわかりやすいです
たとえばEnum.map/2
Wrapping Up 🎍🎍🎍🎍🎍
- と、ここまで書いたところで、
Digital Color Meter
は16進数表示もできることに気づきました表示 > 値を表示 > 16進
- まあ、そんなこともあるさということで筆をおきます
- Enjoy Elixir