Le stringhe in Elixir sono delimitate da doppi apici e sono codificate in UTF-8:
"Hi!"
Le stringhe possono essere concatenate usando l'operatore <>/2:
"Welcome to" <> " " <> "New York"
# => "Welcome to New York"
Le stringhe in Elixir supportano l'interpolazione usando la sintassi #{}:
"6 * 7 = #{6 * 7}"
# => "6 * 7 = 42"
Per inserire un carattere di nuova riga in una stringa, usa il codice di escape \n:
"1\n2\n3\n"
Per lavorare comodamente con testi che contengono molti caratteri di nuova riga, usa invece la sintassi heredoc con tripli doppi apici:
"""
1
2
3
"""
Elixir mette a disposizione molte funzioni per lavorare con le stringhe nel modulo String.
L'operatore |> si chiama operatore pipe. Può essere usato per concatenare tra loro più chiamate di funzione, in modo che il valore restituito dalla chiamata precedente venga passato come primo argomento alla chiamata successiva.
"hello"
|> String.upcase()
|> Kernel.<>("?!")
# => "HELLO?!"
In questo esercizio aiuterai due innamorati del liceo a professare il loro amore sui social media, generando un riquadro ASCII con le loro iniziali:
❤-------------------❤
| J. K. + M. B. |
❤-------------------❤
Implementa la funzione HighSchoolSweetheart.first_letter/1. Dovrebbe prendere un nome e restituirne la prima lettera. Dovrebbe anche eliminare dal nome gli spazi bianchi superflui.
HighSchoolSweetheart.first_letter("Jane")
# => "J"
Implementa la funzione HighSchoolSweetheart.initial/1. Dovrebbe prendere un nome e restituirne la prima lettera, in maiuscolo, seguita da un punto. Assicurati di riutilizzare HighSchoolSweetheart.first_letter/1, che hai definito nel passaggio precedente.
HighSchoolSweetheart.initial("Robert")
# => "R."
Implementa la funzione HighSchoolSweetheart.initials/1. Dovrebbe prendere un nome completo, formato da un nome e un cognome separati da uno spazio, e restituire le iniziali. Assicurati di riutilizzare HighSchoolSweetheart.initial/1, che hai definito nel passaggio precedente.
HighSchoolSweetheart.initials("Lance Green")
# => "L. G."
Implementa la funzione HighSchoolSweetheart.pair/2. Dovrebbe prendere due nomi completi e restituire le iniziali all'interno di un riquadro ASCII. Non devi disegnare il riquadro da solo: usa quello incluso nel commento del codice. Assicurati di riutilizzare HighSchoolSweetheart.initials/1, che hai definito nel passaggio precedente.
HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => """
# ❤-------------------❤
# | B. M. + R. L. |
# ❤-------------------❤
# """
Iscriviti a Exercism per imparare e padroneggiare Elixir con 58 concetti168 esercizi e il mentoring di persone reali, tutto gratis.