Clojure:
שרבוב מחרוזת

איך לעשות:

בקלוז’ר עושים אינטרפולציה של מחרוזות בצורה שונה משפות אחרות, כי אין לנו את המתודה ‘interpolate’ כמו ב-Ruby או ב-Python. אבל אל דאגה, יש לנו מקרופים ופונקציות שיכולות לעשות את העבודה.

;; השימוש ב-str לאיחוד מחרוזות וערכים
(def name "אברהם")
(str "שלום, " name ", מה שלומך?")

;; פלט: "שלום, אברהם, מה שלומך?"

;; השימוש ב-formatted לפורמט מחרוזת עם ערכים מפורמטים
(defn greet [name]
  (format "שלום %s, על איזה מספר אתה חושב?" name))

(greet "יעקב")
;; פלט: "שלום יעקב, על איזה מספר אתה חושב?"

צלילה לעומק

בקלוז’ר, אינטרפולציה של מחרוזות אינה כוללת אופציה בתוך השפה כמו שפות אחרות. היא באה ממסורת של שפות תכנות פונקציונליות כמו ליספ, שבהן היה יותר נפוץ לבנות מחרוזות מרכיבים קטנים יותר, מאשר לכתוב רצפי מחרוזות ארוכים עם ערכים מוטמעים בתוכם.

גישה אחרת שניתן להשתמש בה היא השימוש בתקני עיצוב של Java באמצעות הפונקציה format. חשוב לזכור שכל שימוש בפונקציה זו יהיה פחות “Clojurian” כי היא מתרחקת מהפשטות והיעילות של רכיבה מרכיבים פשוטים.

רכיבים כמו המקרו str מספקים דרך יעילה ופשוטה ליצירת מחרוזות דינמיות. כשצריך להוסיף ערכים משתנים לתוך מחרוזות, פעמים רבות מומלץ לשקול את str, format, או אפילו פיצ’רים נוספים כמו טמפלייטים או עיצוב עם דאטה-ריידרס כדי לנהל קטעי טקסט גדולים יותר ומורכבים.

ראה גם