Menu
Coddy logo textTech

כינוי לחבילה

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-GO של Coddy. שיעור 54 מתוך 68.

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

כדי ליצור כינוי, יש לציין את השם החדש לפני נתיב החבילה בהוראת הייבוא:

import f "fmt"

כעת, במקום להשתמש ב־fmt.Println(), אפשר להשתמש ב־f.Println() הקצר יותר. הדבר שימושי במיוחד בשני מצבים: כשיש לך שמות חבילות ארוכים מאוד שברצונך לקצר, או כשעליך להימנע מהתנגשויות בין שמות של חבילות בעלות שם זהה.

package main

import f "fmt"

func main() {
    f.Println("Hello with an alias!")
}

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

challenge icon

אתגר

קל

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

תקבלו שתי קלטים:

  • מחרוזת המכילה הגדרות של כינויים לחבילות בפורמט "package1:alias1,package2:alias2,package3:alias3" (לדוגמה, "fmt:output,strings:text,strconv:convert")
  • מחרוזת המכילה פעולות לביצוע בפורמט "operation1:data1|operation2:data2|operation3:data3" (לדוגמה, "print:Hello World|upper:go programming|parse:42")

עליכם:

  1. לנתח את הקלט הראשון על ידי פיצול לפי פסיקים כדי לקבל הגדרות נפרדות של כינויים לחבילות
  2. עבור כל הגדרת כינוי, לפצל לפי נקודתיים כדי לקבל את שם החבילה המקורי ואת הכינוי שלה
  3. לייבא את החבילות באמצעות הכינויים שצוינו:
    • לייבא את fmt עם הכינוי שסופק
    • לייבא את strings עם הכינוי שסופק
    • לייבא את strconv עם הכינוי שסופק
  4. להציג את פרטי הגדרת הכינויים:
    • "=== PACKAGE ALIAS DEMONSTRATION ==="
    • "Setting up package aliases:"
    • עבור כל כינוי: "- [original_package] aliased as '[alias]'"
  5. לנתח את הקלט השני על ידי פיצול לפי קווים אנכיים כדי לקבל פעולות נפרדות
  6. עבור כל פעולה, לפצל לפי נקודתיים כדי לקבל את סוג הפעולה ואת הנתונים
  7. להציג את כותרת הפעולות: "Performing operations using aliases:"
  8. עבור כל פעולה, לבצע את הפעולה המתאימה באמצעות החבילות שקיבלו כינויים:
    • עבור פעולות "print": להשתמש בכינוי של fmt כדי להדפיס "[fmt_alias].Println: [data]"
    • עבור פעולות "upper": להשתמש בכינוי של strings כדי להמיר את הנתונים לאותיות גדולות ולהדפיס "[strings_alias].ToUpper: [uppercase_data]"
    • עבור פעולות "lower": להשתמש בכינוי של strings כדי להמיר את הנתונים לאותיות קטנות ולהדפיס "[strings_alias].ToLower: [lowercase_data]"
    • עבור פעולות "parse": להשתמש בכינוי של strconv כדי לנתח את הנתונים כמספר שלם ולהדפיס "[strconv_alias].Atoi: [parsed_number]"
    • עבור פעולות "format": להשתמש בכינוי של fmt כדי לעצב ולהדפיס "[fmt_alias].Sprintf: Formatted -> [data]"
  9. לספור ולהציג נתונים סטטיסטיים על הפעולות:
    • "Operation Summary:"
    • "Total operations performed: [total_operations]"
    • "Packages used: [comma_separated_list_of_aliases_used]"
  10. להציג את היתרונות של מתן כינויים:
    • "Benefits demonstrated:"
    • "- Shorter function calls using aliases"
    • "- Improved code readability"
    • "- Avoided potential naming conflicts"
  11. להציג הודעת השלמה: "Package aliasing demonstration completed successfully"

השתמשו בחבילת strings כדי לפצל מחרוזות קלט ולעבד טקסט, בחבילת strconv כדי להמיר מחרוזות למספרים שלמים, ובחבילת fmt עבור פלט מעוצב. זכרו להשתמש בכינויים בעקביות לאורך התוכנית במקום בשמות החבילות המקוריים. האתגר הזה מדגים כיצד מתן כינויים לחבילות יכול להפוך את הקוד שלכם לתמציתי וקריא יותר, ובמקביל למנוע התנגשויות שמות.

נסו בעצמכם

package main

import (
	"bufio"
	f "fmt"
	"os"
	"sort"
	c "strconv"
	s "strings"
)

func main() {
	// קראו את הקלט באמצעות bufio.Scanner כדי לטפל כראוי ברווחים
	scanner := bufio.NewScanner(os.Stdin)
	
	scanner.Scan()
	aliasInput := scanner.Text()
	
	scanner.Scan()
	operationsInput := scanner.Text()
	
	// נתחו את הגדרות הכינויים
	aliasDefinitions := s.Split(aliasInput, ",")
	
	// נתחו את הפעולות
	operations := s.Split(operationsInput, "|")
	
	// TODO: כתבו את הקוד שלכם למטה
	// 1. נתחו כל הגדרת כינוי כדי לקבל את שם החבילה ואת הכינוי (בדקו אורכים)
	// 2. הציגו את הכותרת של הדגמת כינויי החבילות ואת פרטי ההגדרה
	// 3. עבדו כל פעולה באמצעות החבילה המתאימה שהוגדר לה כינוי
	// 4. ספרו את הפעולות ועקבו אחר הכינויים שבהם נעשה שימוש (שמרו על הסדר או מיינו)
	// 5. הציגו סיכום של הפעולות והיתרונות
	
	// זכרו להשתמש בכינויים באופן עקבי לאורך כל התוכנית שלכם
}
quiz iconבחנו את עצמכם

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

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

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