رشتهها در Elixir با گیومههای دوتایی مشخص میشوند و با UTF-8 کدگذاری شدهاند:
"Hi!"
رشتهها را میتوان با عملگر <>/2 به هم چسباند:
"Welcome to" <> " " <> "New York"
# => "Welcome to New York"
رشتهها در Elixir از درج با روش نگارش #{} پشتیبانی میکنند:
"6 * 7 = #{6 * 7}"
# => "6 * 7 = 42"
برای گذاشتن کاراکتر خط جدید در یک رشته، از دنبالهی فرار \n استفاده کنید:
"1\n2\n3\n"
برای کار راحت با متنهایی که خط جدید زیادی دارند، در عوض از روش نوشتن heredoc با سه گیومهی دوتایی استفاده کنید:
"""
1
2
3
"""
Elixir توابع زیادی برای کار با رشتهها در ماژول String ارائه میدهد.
به عملگر |>، عملگر پایپ میگویند. میتوان از آن برای زنجیرهکردن فراخوانی توابع به شکلی استفاده کرد که مقدار برگشتی از فراخوانی تابع قبلی، بهعنوان آرگومان اول به فراخوانی تابع بعدی داده شود.
"hello"
|> String.upcase()
|> Kernel.<>("?!")
# => "HELLO?!"
در این تمرین به دلدادههای دبیرستانی کمک میکنید تا عشقشان را در شبکههای اجتماعی ابراز کنند؛ برای این کار با حروف اول اسمشان یک جعبهی ASCII میسازید:
❤-------------------❤
| J. K. + M. B. |
❤-------------------❤
تابع HighSchoolSweetheart.first_letter/1 را پیادهسازی کنید. این تابع باید یک اسم بگیرد و اولین حرف آن را برگرداند. همچنین باید هر فضای خالی اضافی را از اسم پاک کند.
HighSchoolSweetheart.first_letter("Jane")
# => "J"
تابع HighSchoolSweetheart.initial/1 را پیادهسازی کنید. این تابع باید یک اسم بگیرد و اولین حرف آن را با حروف بزرگ و بههمراه یک نقطه برگرداند. حتماً از تابع HighSchoolSweetheart.first_letter/1 که در گام قبل تعریف کردید دوباره استفاده کنید.
HighSchoolSweetheart.initial("Robert")
# => "R."
تابع HighSchoolSweetheart.initials/1 را پیادهسازی کنید. این تابع باید یک اسم کامل، شامل اسم کوچک و اسم خانوادگی که با یک فاصله از هم جدا شدهاند، بگیرد و حروف اول را برگرداند. حتماً از تابع HighSchoolSweetheart.initial/1 که در گام قبل تعریف کردید دوباره استفاده کنید.
HighSchoolSweetheart.initials("Lance Green")
# => "L. G."
تابع HighSchoolSweetheart.pair/2 را پیادهسازی کنید. این تابع باید دو اسم کامل بگیرد و حروف اول را داخل یک جعبهی ASCII برگرداند. لازم نیست خودتان جعبه را رسم کنید؛ از جعبهای که در کامنت کد آمده استفاده کنید. حتماً از تابع HighSchoolSweetheart.initials/1 که در گام قبل تعریف کردید دوباره استفاده کنید.
HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => """
# ❤-------------------❤
# | B. M. + R. L. |
# ❤-------------------❤
# """