عملگر خط لوله یا پایپ

عملگر خط لوله یا پایپ تو زبان‌های برنامه‌نویسی استفاده شده و باعث میشه بتونیم کد‌های بهتر و زیباتر و خواناتری بنویسیم. مثلا اینو ببینید:

    # Converts something like www.adomain.com to adomaincom
    domain
    |> String.reverse()
    |> String.split(".", parts: 3)
    |> Enum.take(2)
    |> Enum.join("")
    |> String.reverse()

عملگر مورد اشاره <| هست که تو انگلیسی بهش pipe میگن. متغیر دامین به عنوان اولین پارامتر به تابع String.reverse داده میشه، و خروجی اون به عنوان اولین پارامتر تابع بعدی یعنی String.split در میاد. یعنی خروجی قبل از لوله، به صورت اولین پارامتر بعد از لوله درمیاد. و ترکیب این لوله‌ها خط لوله میسازه 🙂

خیلی ساده نوشته شده، قابل فهم هست و در ضمن زیباست. البته که زیبایی و نسبتا خوانایی سلیقه‌ای هست و این نظر منه.

این کد به زبان Elixir هست. تو زبان‌های دیگه هم هست احتمالا، ولی جستجو نکردم و الان چیزی خاطرم نیست.

البته تو پوسته (shell) های لینوکس هم استفاده میشه. مثلا این خط رو ببینید.

cat a.txt | grep something | wc -l

اول دستور cat اجرا میشه، بعد خروجی اون میشه ورودی grep و خروجی grep میشه ورودی wc. کاری که این دستور میکنه در نهایت تو فایل a.txt تعداد خطوطی که کلمه something دارن رو میشماره. دوباره ساده، زیبا و خوانا.