site map who made it ?
 

בנוסף למשתנים הפשוטים מספקת Tcl מערכים. מערכים אלה הם אוסף של אלמנטים בעלי שם וערך. שם משתנה במערך מורכב משם המערך בו הוא נמצא ושמו שלו במערך. מערכים אלה נקראים אסוציאטיביים על מנת להבדילם ממערכים רגילים המוכרים משפות התכנות.

מערכים כאלה מאגדים משתנים שהיו יכולים להיות מוגדרים בנפרד ע"י פקודת set. להלן דוגמת קוד:

set grades(haim) 90
=> 90
set grades(moshe)
100
=> grades(haim)
90

הפקודה הראשונה ישצרה מערך בשם grades, אם לא היה קיים קודם. בנוסף, נוצר אלמנט בשם haim במערך , אם לא היה קיים קודם, אשר קיבל את הערך 90. הפקודה השנייה מוסיפה אלמנט נוסף למערך והשלישית מחזירה את ערך המשתנה haim.

בעיה אפשרית בשימוש בשמות בתור אינקסים היא שיש צורך לזכור אותם. ניתן להשתמש בפקודה array כדי לגשת לשמות האינדקסים באופן עקיף. בתכנית הבאה יודגם השימוש בפקודה array :

"set person_info(name) "Fred Smith
"set person_info(age) "25
"set person_info(occupation) "Plumber

 } foreach thing [array names person_info
   " (puts "$thing == $person_info($thing
{

occupation == plumber<=
age == 25<=
name == Fred Smith<=

בדוגמא יש שימוש בפקודה array כדי לקבל את שמות האינדקסים במערך. סדר המשתנים שונה מסדר ההכנסה משום שהפקודה array מציגה את השמות לאו דווקא בסדר המקורי.
פקודת ה-array נועדה כדי לקבל פריטי מידע שונים לגבי מערך (כמו גודלו או שמות האינדקסים שבו), ומשמשת לצורך פעולות נוספות על המערך (כמו חיפוש).

הסינטקס של הפקודה array :
?...array option arrayName ?arg arg

ארגומנט ה-option מציין את סוג הפעולה על המערך (בדוגמא למעלה - שמות האינדקסים) ששמו הוא arrayName. רשימת האופציות השונות לשימוש בפקודה מצויה בדפי ה-man.

 

 
< המדריך > משתנים
מערכים אסוציאטיביים

מערכים פשוטים

לעמוד הבא
למעלה
לעמוד הקודם