Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الأسماء المستعارة للحزم

جزء من قسم Logic & Flow في رحلة GO على Coddy — الدرس 54 من 68.

أحياناً تحتاج إلى إعطاء حزمة مستوردة اسماً مختلفاً داخل ملفك. يُسمى هذا تسمية مستعارة للحزمة (package aliasing)، وتجعل لغة Go ذلك بسيطاً بصيغة مباشرة.

لإنشاء اسم مستعار، قم بتحديد الاسم الجديد قبل مسار الحزمة في جملة الاستيراد الخاصة بك:

import f "fmt"

الآن بدلاً من استخدام fmt.Println()، يمكنك استخدام النسخة الأقصر f.Println(). هذا مفيد بشكل خاص في حالتين: عندما يكون لديك أسماء حزم طويلة جداً وتريد تقصيرها، أو عندما تحتاج إلى تجنب تضارب الأسماء بين الحزم التي لها نفس الاسم.

package main

import f "fmt"

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

تمنحك تسمية الحزم بأسماء مستعارة مرونة في كيفية الإشارة إلى الحزم المستوردة، مما يجعل الكود الخاص بك أكثر قابلية للقراءة ويساعدك على إدارة سيناريوهات الاستيراد المعقدة.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

challenge icon

التحدي

سهل

قم بإنشاء برنامج يوضح استخدام الأسماء المستعارة للحزم (package aliasing) من خلال استيراد حزم متعددة بأسماء مستعارة مخصصة واستخدامها لإجراء عمليات متنوعة. سيختبر هذا التحدي قدرتك على إنشاء أسماء مستعارة ذات معنى للحزم واستخدامها باستمرار طوال برنامجك.

ستتلقى مدخلين:

  • سلسلة نصية تحتوي على تعريفات الأسماء المستعارة للحزم بالتنسيق "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 aliasing) لإعطاء الحزم المستوردة أسماءً مختلفة داخل ملفك:

import f "fmt"

الآن يمكنك استخدام f.Println() بدلاً من fmt.Println():

package main

import f "fmt"

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

الاسم المستعار للحزمة مفيد لـ:

  • تقصير أسماء الحزم الطويلة جداً
  • تجنب تعارض الأسماء بين الحزم التي لها نفس الاسم
  • جعل الكود أكثر قابلية للقراءة

جرّب بنفسك

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()
	
	// تحليل تعريفات الأسماء المستعارة (alias)
	aliasDefinitions := s.Split(aliasInput, ",")
	
	// تحليل العمليات
	operations := s.Split(operationsInput, "|")
	
	// TODO: اكتب الكود الخاص بك أدناه
	// 1. قم بتحليل كل تعريف اسم مستعار للحصول على اسم الحزمة والاسم المستعار (تحقق من الأطوال)
	// 2. عرض ترويسة عرض الاسم المستعار للحزمة ومعلومات الإعداد
	// 3. معالجة كل عملية باستخدام الحزمة المستعارة المناسبة
	// 4. عد العمليات وتتبع الأسماء المستعارة التي تم استخدامها (الحفاظ على الترتيب أو الفرز)
	// 5. عرض ملخص العمليات والفوائد
	
	// تذكر استخدام الأسماء المستعارة باستمرار طوال برنامجك
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow