การดึงข้อมูลย่อยออกมา

Clojure:
การดึงข้อมูลย่อยออกมา

วิธีการ:

Clojure ทำให้การทำงานกับข้อความเป็นเรื่องง่าย สำหรับการดึงข้อความย่อย, subs คือฟังก์ชั่นตัวเลือกของคุณ:

(let [text "ClojureRocks"]
  (subs text 7)) ; => "Rocks"

(let [text "ClojureRocks"]
  (subs text 0 7)) ; => "Clojure"

และนั่นคือทั้งหมด—ให้มันเริ่มต้นด้วยดัชนีเริ่มต้น, และตัวเลือกเป็นดัชนีสุดท้าย, และคุณจะตัดข้อความได้ตามที่คุณต้องการ

ลึกลงไปดู

การดึงข้อความย่อยออกมาไม่ใช่เรื่องใหม่—มีมาตั้งแต่ยุคแรกๆ ของการเขียนโปรแกรม ใน Clojure, subs เป็นฟังก์ชั่นที่ตรงไปตรงมา มันเป็นส่วนหนึ่งของความสามารถในการทำงานร่วมกับ Java โดยสามารถใช้งานเมธอด substring ของ Java ได้ สองประเด็นหลัก: ไม่อนุญาตให้ใช้ดัชนีติดลบ, และนับแบบฐานศูนย์ (เริ่มนับที่ศูนย์) ดังนั้นจำเรื่องนี้ไว้ไม่เช่นนั้นคุณจะนับผิด

ทางเลือกอื่น? แน่นอน. Regex ด้วย re-find และ re-matcher สำหรับลวดลายที่ซับซ้อน, หรือ split ถ้าคุณกำลังแบ่งที่ตัวคั่น แต่ละเครื่องมือมีที่ของมัน, แต่ไม่มีอะไรเทียบ subs ได้ในความเรียบง่าย

ในแง่ของการรูปแบบ, subs ไม่ได้คัดลอกอักขระ, แต่แบ่งปันอาร์เรย์อักขระของข้อความดั้งเดิม เป็นวิธีที่มีประสิทธิภาพ, แต่ถ้าข้อความดั้งเดิมของคุณใหญ่มากและคุณต้องการเพียงส่วนเล็กๆ, คุณอาจโดยไม่ตั้งใจเก็บข้อความใหญ่ทั้งหมดไว้ในหน่วยความจำ

ดูเพิ่มเติม:

  • Official Clojure String API: clojure.string
  • Java substring: เพราะนั่นคือแหล่งพลังหลักของ subs Java substring
  • Regular expressions ใน Clojure: re-find
  • การแบ่งข้อความใน Clojure: split