گا

گارد در Elixir

53 تمرین

درباره‌ی گارد

«گاردها» به‌عنوان مکملی برای «تطبیق الگو» به کار می‌روند. این‌ها امکان بررسی‌های پیچیده‌تری را فراهم می‌کنند. می‌توان از آن‌ها در برخی موقعیت‌ها، اما نه همه، که تطبیق الگو در آن‌ها به کار می‌رود، استفاده کرد؛ برای مثال در بندهای تابع یا بندهای case.

def empty?(list) when is_list(list) and length(list) == 0 do
  true
end
  • گاردها با کلیدواژه‌ی when شروع می‌شوند و پس از آن یک عبارت «منطقی» می‌آید.

  • عبارت‌های گارد، توابع خاصی هستند که:

    • باید خالص باشند و هیچ حالت سراسری‌ای را تغییر ندهند.
    • باید مقادیر دقیقاً true یا false را برگردانند.
  • فهرستی از گاردهای رایج در مستندات Elixir آمده است. از جمله:

  • می‌توانید گارد خودتان را با defguard تعریف کنید.

    • بر اساس قرارداد نام‌گذاری Elixir، اسم گاردها باید با is_ شروع شود.

      defmodule HTTP do
        defguard is_success(code) when code >= 200 and code < 300
      
        def handle_response(code) when is_success(code) do
          :ok
        end
      end
      
ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

گارد را یاد بگیرید

تمرین کردن قفل شده است

برای تمرین گارد قفل 6 تمرین دیگر را باز کنید