Elixir:
การดึงข้อมูลย่อยออกมา
วิธีการ:
ใน Elixir, คุณสามารถดึงข้อความย่อยโดยใช้โมดูล String
นี่คือวิธีการ:
str = "Hello, World!"
# การดึงข้อความย่อยโดยการระบุช่วง
substr = String.slice(str, 7, 5)
IO.puts(substr) # => World
# การดึงข้อความย่อยไปจนถึงสิ้นสุดของข้อความ
substr_end = String.slice(str, 7)
IO.puts(substr_end) # => World!
# การดึงตัวอักษรเดียว (ซึ่งก็ถือเป็นข้อความย่อยโดยเทคนิค)
char = String.at(str, 1)
IO.puts(char) # => e
ตัวอย่างเหล่านี้แสดงการดึงข้อความโดยการระบุช่วงดัชนี, ไปจนถึงสิ้นสุดของข้อความ, และการจับตัวอักษรเดียว
ลงลึก
วิธีการใช้งานข้อความของ Elixir ได้รับอิทธิพลมาจากมรดกของ Erlang โดยใช้ binaries สำหรับการจัดเก็บสตริง การดึงข้อความย่อยแตกต่างจากภาษาเช่น C ซึ่งใช้สตริงที่จบด้วย null ข้อความย่อยใน Elixir เป็น UTF-8 และบายนารี-เซฟ หมายความว่าพวกเขาเคารพขอบเขตของตัวละคร
ในอดีต, ภาษาโปรแกรมและระบบต่างๆ มีวิธีจัดการสตริงของตัวเอง ซึ่งบ่อยครั้งนำไปสู่ปัญหาเรื่องการสากลนำและการจัดการหน่วยความจำ Elixir ด้วยสตริงบายนารีให้วิธีการที่สากลและมีประสิทธิภาพสำหรับจัดการสตริง
วิธีการอื่นๆ ใน Elixir สำหรับการดึงข้อความย่อยที่เกินกว่า String.slice
และ String.at
ส่วนใหญ่เกี่ยวข้องกับการใช้งาน regex หรือการจับคู่รูปแบบสตริง ซึ่งทั้งสองสามารถมีพลังมากแต่ก็ซับซ้อนมากขึ้น
รายละเอียดการดำเนินการมีความสำคัญเพราะการดึงข้อความย่อยอาจเป็นการใช้ทรัพยากรมาก โดยเฉพาะเมื่อจัดการกับสตริงขนาดใหญ่หรือดำเนินการมากมายอย่างไม่ถูกต้อง ลักษณะภาพการทำงานแบบฟังก์ชันของ Elixir สนับสนุนการประมวลผลสตริงในลักษณะที่ใช้ประโยชน์จากการจับคู่รูปแบบและการเรียกกลับซ้ำๆ (Recursion) ซึ่งสามารถช่วยเรื่องประสิทธิภาพและความชัดเจนของโค้ด
ดูเพิ่มเติม
สำหรับการอ่านเพิ่มเติมและเอกสารที่ละเอียดยิ่งขึ้น คุณสามารถเข้าชมลิ้งก์เหล่านี้ได้:
- เอกสารอย่างเป็นทางการของโมดูล
String
ของ Elixir: hexdocs.pm/elixir/String.html - การทำความเข้าใจ binaries และสตริงใน Elixir: elixir-lang.org/getting-started/binaries-strings-and-char-lists.html
- การมองของ Elixir School เกี่ยวกับสตริงและการจับคู่รูปแบบ: elixirschool.com/en/lessons/basics/strings และ elixirschool.com/en/lessons/basics/pattern-matching
- การใช้ regular expressions ใน Elixir: hexdocs.pm/elixir/Regex.html