مب

مبانی در Elixir

2 تمرین

درباره‌ی مبانی

  • Elixir به‌صورت پویا نوع‌دهی می‌شود.
    • نوع یک متغیر فقط در زمان اجرا بررسی می‌شود.
  • با استفاده از عملگر تطبیق = می‌توانیم مقداری از هر نوع را به یک اسم متغیر مقید کنیم:
    • می‌توان متغیرها را دوباره مقید کرد.
    • می‌توان هر نوع مقداری را به یک متغیر مقید کرد.

ماژول‌ها

  • ماژول‌ها اساس سازمان‌دهی کد در Elixir هستند.
    • هر ماژول برای همه‌ی ماژول‌های دیگر قابل مشاهده است.
    • یک ماژول با defmodule تعریف می‌شود.

توابع نامدار

  • همه‌ی توابع نامدار باید در یک ماژول تعریف شوند.

    • توابع نامدار با def تعریف می‌شوند.
    • به‌جای آن، می‌توان یک تابع نامدار را با defp خصوصی کرد.
    • مقدار آخرین عبارت در یک تابع به‌صورت ضمنی برگردانده می‌شود.
    • توابع کوتاه را می‌توان با نحوه‌ی نگارش تک‌خطی نیز نوشت.
    def increment(n) do
      n + 1
    end
    
    defp private_increment(n) do
      n + 1
    end
    
    def short_increment(n), do: n + 1
    
  • توابع با اسم کامل تابع همراه با اسم ماژول فراخوانی می‌شوند.

    • اگر از داخل ماژول خودش فراخوانی شوند، می‌توان اسم ماژول را حذف کرد.
  • اغلب وقتی به یک تابع نامدار اشاره می‌کنیم، تعداد آرگومان‌های آن را هم می‌گوییم.

    • تعداد آرگومان‌ها یعنی تعداد ورودی‌هایی که تابع می‌پذیرد.
    # add/3, because the arity is 3
    def add(x, y, z), do: x + y + z
    

قواعد نام‌گذاری

اسم ماژول‌ها باید از PascalCase استفاده کند. اسم یک ماژول باید با یک حرف بزرگ A-Z شروع شود و می‌تواند شامل حروف a-zA-Z، اعداد 0-9 و زیرخط _ باشد.

اسم متغیرها و توابع باید از snake_case استفاده کند. اسم یک متغیر یا تابع باید با یک حرف کوچک a-z یا یک زیرخط _ شروع شود، می‌تواند شامل حروف a-zA-Z، اعداد 0-9 و زیرخط _ باشد و ممکن است با علامت سؤال ? یا علامت تعجب ! تمام شود.

اعداد صحیح

مقادیر صحیح، اعداد کاملی هستند که با یک یا چند رقم نوشته می‌شوند. می‌توانید عملیات ریاضی پایه را روی آن‌ها انجام دهید.

رشته‌ها

مقدارهای رشته‌ای دنباله‌هایی از نویسه‌ها هستند که بین دو گیومه قرار می‌گیرند.

string = "this is a string! 1, 2, 3!"

کتابخانه‌ی استاندارد

  • مستندات به‌صورت آنلاین در hexdocs.pm/elixir در دسترس است.
  • بیشتر انواع داده‌ی داخلی ماژول متناظر خود را دارند، مثلاً Integer، Float، String، Tuple، List.
  • ماژول Kernel یک ماژول ویژه است.
    • قابلیت‌های پایه‌ای را فراهم می‌کند که بقیه‌ی کتابخانه‌ی استاندارد روی آن‌ها بنا شده است.
    • به‌صورت خودکار وارد می‌شود.
    • توابع آن را می‌توان بدون پیشوند Kernel. استفاده کرد.

توضیحات کد

از توضیحات می‌توان برای گذاشتن یادداشت برای سایر توسعه‌دهندگانی که کد منبع را می‌خوانند استفاده کرد. توضیحات تک‌خطی در Elixir با # شروع می‌شوند.

ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

مبانی را یاد بگیرید

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

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