この記事は「Elixir Advent Calendar 2022」2日目の記事です
Elixir
東京にいるけどfukuokaexのYOSUKEです。
簡単 Elixirシリーズでは小ネタをサクッと書いていこう。というコンセプトで作っていきます。
仕事柄、ライトニングトークをしてもらい、その内容に質問をしてもらう。といった事をよくします。ただ、その際に質問ある人を募集しても中々手を上げてくれません。なので、先に質問者を決めて質問するつもりで聞いてもらうといった事をしてます。その時にサクッと質問者を公平に決めたい。という小ネタ(そう、この記事はサクッとがコンセプトW)
iex> list = ~w(名前1 名前2 名前3 名前4 名前5 名前6 名前7 名前8 名前9)
["名前1", "名前2", "名前3", "名前4", "名前5", "名前6", "名前7",
"名前8", "名前9"]
iex> Enum.shuffle(list) |> Enum.at(0)
"名前9"
シギル ~w を使って、空白開けて文字を記入するとリスト化されるので""で囲みながら書かなくて良いので便利です。
やってる事はシンプルでリストの順番をシャッフルして、Enum.at(list, 0)で0番目の要素を取得してるだけです。
パイプで繋げると第一引数は|>Enum.at(0)に自動的に引き継がれるので、第二引数の取得したい要素数を入れてます。