現在エリクサーで取得している方法の結果として、文字列の下に取得するにはどうすればよいですか。
['x1', 'x2']
で試しましenum.join
たが、目的のデータが得られませんでした
に
'x1,x2'
私の理解が正しければEnum.join/2
、2 番目のパラメーターを使用して「ジョイナー」を定義する必要があります。これはうまくいくはずです:
arr = ['x1', 'x2']
Enum.join(arr, ",")
# => "x1,x2"
結果を文字リストにしたい場合は、次を使用して文字リストに変換できますString.to_char_list/1
。
String.to_char_list(Enum.join(arr, ","))
# => 'x1,x2'
別のオプションはEnum.reduce/2
、ジョイナーを明示的に使用して追加することです。
Enum.reduce(arr, &(&2 ++ ',' ++ &1))
# => 'x1,x2'
join
一重引用符で囲まれた文字列の古典的な再帰的な実装は次のとおりです。
defmodule MyString do
def join(list, joiner \\ ''), do: do_join(list, joiner)
defp do_join([], joiner), do: ''
defp do_join([hd], joiner), do: hd
defp do_join([hd | tl], joiner), do: hd ++ joiner ++ join(tl, joiner)
end
iex> MyString.join([], ',')
[]
iex> MyString.join(['x1'], ',')
'x1'
iex> MyString.join(['x1', 'x2'], ',')
'x1,x2'
iex> MyString.join(['x1', 'x2'])
'x1x2'