Elixir:
Interpolering av en streng
How to:
Elixir bruker #{}
for å interpolere uttrykk i strenger:
name = "Verden"
message = "Hei, #{name}!"
IO.puts message
Output:
Hei, Verden!
For beregninger inne i en streng:
hours = 24
message = "En dag har #{hours * 60} minutter."
IO.puts message
Output:
En dag har 1440 minutter.
Deep Dive
I Elixir implementeres strenginterpolering ved hjelp av binær-operatoren <>
som fletter sammen bitstrengelementer. Interpolering er en syntaktisk bekvemmelighet som forvandles til denne operatøren under kjøring.
Historisk sett arver Elixir denne funksjonen fra Ruby, der den er også mye brukt. Alternativer til interpolering inkluderer sammenkjeding med <>
eller bruk av String.concat/2
. Men interpolering er mer leselig og foretrukket i de fleste tilfeller.
Elixir kompilerer strenger til UTF-8 kodete binærer. Når du interpolerer, slår Elixirkompilatoren sammen disse binærene i én sammenhengende rekkefølge, slik at det er effektivt selv med store strenger.