Menu
Coddy logo textTech

שרשור Map

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Ruby של Coddy. שיעור 22 מתוך 56.

פגשת את map ביסודות; היא בונה מערך חדש על ידי שינוי של כל איבר. הכוח האמיתי שלה מתגלה כשמשלבים אותה עם select, עם reject ואחרות.

כל מתודה מחזירה מערך, לכן קריאה למתודה נוספת על התוצאה פשוט ממשיכה את השרשור:

numbers = [1, 2, 3, 4, 5]
result = numbers
  .select { |n| n.odd? }
  .map    { |n| n * 10 }
puts result.inspect   # [10, 30, 50]

קראו את השרשרת מלמעלה למטה: התחילו במספרים, השאירו את האי־זוגיים, הכפילו כל אחד ב־10. בלי משתנים זמניים ובלי לולאה.

קיצור הדרך &:method_name עובד בכל פעם שהבלוק רק קורא למתודה אחת:

["hi", "yo"].map { |s| s.upcase }   # ["HI", "YO"]
["hi", "yo"].map(&:upcase)         # ["HI", "YO"]  (אותו הדבר)

הקיצור הזה מופיע בכל מקום בקוד Ruby. זהו אותו כשתראו אותו.

challenge icon

אתגר

קל

קרא רשימת מילים המופרדות בפסיקים. הדפס בשורה אחת את המילים שאורכן עולה על 3 תווים, באותיות גדולות, כשהן מופרדות באמצעות , .

בנה זאת כשרשרת אחת: select את המילים הארוכות, הפעל עליהן map עם &:upcase, ואז join.

עבור הקלט hi,hello,yo,coddy,sup, הפלט הוא:

HELLO, CODDY

נסו בעצמכם

words = gets.chomp.split(",")

# TODO: שרשר select + map(&:upcase) + join
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Ruby אונליין