名前付き関数の代わりにElixirで匿名関数を使用する場合私は無名関数を使用する。この場合エリクサーで匿名関数を使用する場合
handle_open = fn
{:ok, :done} -> "OK"
{:error, _} -> "Error:"
end
handle_open.(ExAws.S3.download_file("#{Application.get_env(:ex_aws, :s3)[:bucket_s3]}", "foo.jpg", "../../public") |> ExAws.request);
:
は、例えば、私は、このスニペットを持っています。名前付き関数を使って同じ結果を(マルチボディで)どのようにすることができますか?
この場合、匿名または名前付き関数を使用する方が正しいですか?
あなたがそうのように、ケース句、または2つの機能句を持つ単一機能を行うだろうどちらか
匿名関数または名前付き関数を使用するときの答えは、新しい関数に少しのコードを抽出するときと同じです。なぜあなたは抽出するのですか?あなたはそれを再利用したいからです。あなたのコードが小さい場合は、無名関数を定義して使用してください(主に 'Enum.map'のようなコールバックを受け取る関数で使用されます)。他の場所で関数が必要な場合は、それを名前付き関数に抽出する方が良いでしょう。補足として、変数に無名関数を割り当てました。それは私がめったに見ることのないものです。一度使用するコードにはインラインの匿名関数を使用し、再利用可能なものには名前付きのものを使用します。 – vfsoraki