การแทรกค่าลงในสตริง

Elixir:
การแทรกค่าลงในสตริง

วิธีการ:

name = "Josie"
age = 28

# การใส่ตัวแปรลงในสตริง
greeting = "Hello, #{name}! You are #{age} years old."
IO.puts greeting

ตัวอย่างผลลัพธ์:

Hello, Josie! You are 28 years old.
# การใส่นิพจน์ลงในสตริง
IO.puts "In five years, #{name} will be #{age + 5} years old."

ตัวอย่างผลลัพธ์:

In five years, Josie will be 33 years old.

ลงลึก

ในยุคแรกๆ คุณจะต้องใช้ + หรือ , ในการต่อสตริงเข้าด้วยกัน ซึ่งเป็นเรื่องที่ลำบาก ภาษาโปรแกรมมิ่งจึงเริ่มใช้การใส่ตัวแปรเพื่อการที่ง่ายขึ้นและมีการอ่านที่ง่ายขึ้น Elixir ซึ่งเป็นภาษาสมัยใหม่ก็รองรับคุณสมบัตินี้เช่นกัน

นี่คือสิ่งที่เกิดขึ้นเบื้องหลังกับ "Hello, #{name}!": ระหว่างการคอมไพล์, Elixir จะเปลี่ยนสตริงเป็นการต่อสตริงของส่วนไบนารี, ซึ่งมีประสิทธิภาพเพราะไบนารีใน Elixir นั้นเป็น immutable

วิธีอื่นในการจัดการสตริงโดยไม่ใช้การใส่ตัวแปรใน Elixir อาจรวมถึงการใช้ String.concat/2 หรือตัวดำเนินการ <> แต่วิธีเหล่านี้ก็มีความสะดวกน้อยกว่าสำหรับสตริงที่ซับซ้อน

ไวยากรณ์การใส่ตัวแปร "#{...}" สามารถรวมนิพจน์ Elixir ใด ๆ ที่จะถูกประมวลผลและจากนั้นแปลงเป็นสตริง สิ่งนี้เป็นไปได้เนื่องจาก Elixir มีการพิมพ์แบบไดนามิกและรองรับนิพจน์ในสตริงเป็นหลัก แต่จำไว้ว่า มันควรใช้สำหรับนิพจน์ที่ง่ายขึ้นเพื่อรักษาความสามารถในการอ่านได้

ดูเพิ่มเติม