Elm:
ค้นหาความยาวของสตริง
วิธีการ:
ใน Elm, คุณใช้ String.length
เพื่อหาว่ามีตัวอักษรกี่ตัวในสตริง พิจารณาดู:
import Html exposing (text)
main =
text (String.fromInt (String.length "Hello, Elm!"))
-- ผลลัพธ์: "11"
ศึกษาลึก
ในอดีต, ฟังก์ชันวัดความยาวสตริงมีความสำคัญสำหรับการจัดการหน่วยความจำและการประมวลผลข้อความในภาษาที่มีการเข้าถึงข้อมูลระดับต่ำ Elm, ที่เป็นภาษาระดับสูง, ทำการซ่อนรายละเอียดเหล่านี้ไว้, และมีฟังก์ชันที่ให้มาพร้อมกับ String.length
มีสองประเด็นที่ควรสังเกต:
- สตริงใน Elm ถูกเข้ารหัสด้วย UTF-16
String.length
จะคืนค่าจำนวนหน่วยของรหัส UTF-16, ซึ่งอาจต่างจากจำนวน graphemes ของ Unicode (ตัวอักษรที่ผู้ใช้รับรู้) ในสตริงที่มีตัวอักษรซับซ้อน - ไม่มีทางเลือกอื่นนอกเหนือจาก
String.length
ใน Elm ถ้าคุณต้องการจำนวน graphemes, คุณอาจต้องใช้ฟังก์ชันที่กำหนดเองซึ่งคำนึงถึงความซับซ้อนของ Unicode
โดยภายใน, String.length
จะวนลูปผ่านโครงสร้างข้อมูลสตริง, นับองค์ประกอบ ในฐานะฟังก์ชันที่บริสุทธิ์, ผลลัพธ์ของมันขึ้นอยู่กับข้อมูลที่ป้อนเข้ามาอย่างเดียว, รักษาอุดมการณ์การเขียนโปรแกรมแบบฟังก์ชันของ Elm
ดูเพิ่มเติม
- เอกสาร
String
อย่างเป็นทางการของ Elm: https://package.elm-lang.org/packages/elm/core/latest/String#length - UTF-16: https://en.wikipedia.org/wiki/UTF-16