Em Elixir, as strings são delimitadas por aspas duplas e codificadas em UTF-8:
"Hi!"
As strings podem ser concatenadas com o operador <>/2:
"Welcome to" <> " " <> "New York"
# => "Welcome to New York"
As strings em Elixir suportam interpolação com a sintaxe #{}:
"6 * 7 = #{6 * 7}"
# => "6 * 7 = 42"
Para colocar um caráter de nova linha numa string, usa o código de escape \n:
"1\n2\n3\n"
Para trabalhar confortavelmente com textos com muitas novas linhas, usa antes a sintaxe heredoc com três aspas duplas:
"""
1
2
3
"""
O Elixir disponibiliza muitas funções para trabalhar com strings no módulo String.
O operador |> chama-se operador pipe. Podes usá-lo para encadear chamadas de funções, de modo que o valor devolvido pela chamada anterior é passado como primeiro argumento à chamada seguinte.
"hello"
|> String.upcase()
|> Kernel.<>("?!")
# => "HELLO?!"
Neste exercício, vais ajudar namorados do liceu a declarar o seu amor nas redes sociais, gerando uma caixa ASCII com as iniciais deles:
❤-------------------❤
| J. K. + M. B. |
❤-------------------❤
Implementa a função HighSchoolSweetheart.first_letter/1. Deve receber um nome e devolver a sua primeira letra. Deve limpar todos os espaços desnecessários do nome.
HighSchoolSweetheart.first_letter("Jane")
# => "J"
Implementa a função HighSchoolSweetheart.initial/1. Deve receber um nome e devolver a sua primeira letra, em maiúscula, seguida de um ponto. Certifica-te de que reutilizas HighSchoolSweetheart.first_letter/1, que definiste no passo anterior.
HighSchoolSweetheart.initial("Robert")
# => "R."
Implementa a função HighSchoolSweetheart.initials/1. Deve receber um nome completo, composto por um primeiro nome e um último nome separados por um espaço, e devolver as iniciais. Certifica-te de que reutilizas HighSchoolSweetheart.initial/1, que definiste no passo anterior.
HighSchoolSweetheart.initials("Lance Green")
# => "L. G."
Implementa a função HighSchoolSweetheart.pair/2. Deve receber dois nomes completos e devolver as iniciais dentro de uma caixa ASCII. Não precisas de desenhar a caixa tu próprio. Usa a caixa incluída no comentário do código. Certifica-te de que reutilizas HighSchoolSweetheart.initials/1, que definiste no passo anterior.
HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => """
# ❤-------------------❤
# | B. M. + R. L. |
# ❤-------------------❤
# """
Inscreve-te no Exercism para aprenderes e dominares Elixir com 58 conceitos168 exercícios, e mentoria humana real, tudo grátis.