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