學習軌道
/
Elixir
Elixir
/
練習
/
高中情人
高中情人

高中情人

學習練習

簡介

字串

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.  |
❤-------------------❤

1. 取得名字的第一個字母

實作 HighSchoolSweetheart.first_letter/1 函式。它應該接受一個名字,並回傳它的第一個字母。它應該清除名字中任何多餘的空白。

HighSchoolSweetheart.first_letter("Jane")
# => "J"

2. 將第一個字母格式化為姓名縮寫

實作 HighSchoolSweetheart.initial/1 函式。它應該接受一個名字,並回傳它的第一個字母,轉成大寫,後面加上一個點。請務必重複使用你在前一步定義的 HighSchoolSweetheart.first_letter/1。

HighSchoolSweetheart.initial("Robert")
# => "R."

3. 將全名拆分成名字和姓氏

實作 HighSchoolSweetheart.initials/1 函式。它應該接受一個全名,全名由名字和姓氏組成,兩者以空格分隔,並回傳姓名縮寫。請務必重複使用你在前一步定義的 HighSchoolSweetheart.initial/1。

HighSchoolSweetheart.initials("Lance Green")
# => "L. G."

4. 將姓名縮寫放進 ASCII 方框內

實作 HighSchoolSweetheart.pair/2 函式。它應該接受兩個全名,並回傳放在 ASCII 方框內的姓名縮寫。你不需要自己畫方框,請使用程式碼註解中附的方框。請務必重複使用你在前一步定義的 HighSchoolSweetheart.initials/1。

HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => """
# ❤-------------------❤
# |  B. M.  +  R. L.  |
# ❤-------------------❤
# """
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Elixir Exercism

準備好開始 高中情人 了嗎?

註冊 Exercism,透過 58 個概念168 個練習 和真人引導來學習並精通 Elixir,全部免費。