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"
改行の多いテキストを快適に扱いたいときは、代わりにダブルクォートを3つ重ねたヒアドキュメント構文を使いましょう。
"""
1
2
3
"""
Elixirには、文字列を扱うための関数がStringモジュールにたくさん用意されています。
|>演算子はパイプ演算子と呼ばれます。前の関数呼び出しの戻り値を、次の関数呼び出しの最初の引数として渡す形で、関数呼び出しをつなげることができます。
"hello"
|> String.upcase()
|> Kernel.<>("?!")
# => "HELLO?!"
この演習では、高校時代の恋人同士がSNSで愛を告白できるよう、二人のイニシャルを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. |
# ❤-------------------❤
# """