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 มีการพิมพ์แบบไดนามิกและรองรับนิพจน์ในสตริงเป็นหลัก แต่จำไว้ว่า มันควรใช้สำหรับนิพจน์ที่ง่ายขึ้นเพื่อรักษาความสามารถในการอ่านได้
ดูเพิ่มเติม
- เอกสารของโมดูล
String
ใน Elixir: https://hexdocs.pm/elixir/String.html - คู่มือเกี่ยวกับประเภทข้อมูลไบนารีใน Elixir: https://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html