LoginSignup
5
0

More than 3 years have passed since last update.

はじめに

  • Elixir楽しんでいますか:bangbang::bangbang::bangbang:
  • Integer.to_string/2
    • これが肝です
    • もう少し具体例をまじえて書いておきます

10進数 -> 16進数へ変換したい

IMG_20210117_114641.jpg

  • 一般的にはスポイトツールとでもいうのでしょうか、macOSならその他 > Digital Color Meterというものです
  • 10進数のRGBを16進数に変えたいことありますよね
  • たとえば、autoracexというグループを立ち上げましてですね、背景色をElixir色にしたいわけですよ

スクリーンショット 2021-01-17 11.56.56.png

  • IEx(Elixir's interactive shell)を立ち上げて以下のような感じで変換できます
iex> [74, 46, 94] |> Enum.map(&Integer.to_string(&1, 16)) |> Enum.join() |> String.downcase() |> (&("##{&1}")).()
"#4a2e5e"
  • (&("##{&1}")).()なんて書き方は格好つけているだけです
    • そうです
    • 文字通り、
    • $\huge{カッコ()ばっかりつけているだけです}$
  • 次に書いているものは、:point_up::point_up_tone2::point_up_tone3::point_up_tone4::point_up_tone5:の別な書き方です
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を途中にはさみながら書くとそれぞれの関数を通ったあとの結果がみれて、ありがとナイス:flag_cn:です
(
[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

スクリーンショット 2021-01-17 12.18.19.png

Wrapping Up 🎍🎍🎍🎍🎍

  • と、ここまで書いたところで、Digital Color Meterは16進数表示もできることに気づきました :sweat_smile:
    • 表示 > 値を表示 > 16進
  • まあ、そんなこともあるさということで筆をおきます
  • Enjoy Elixir :rocket::rocket::rocket:
5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0