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

الـ Packages والـ Imports

جزء من قسم Object Oriented Programming في رحلة GO على Coddy — الدرس 3 من 107.

يبدأ كل ملف Go بتصريح package. تجلب الكلمة المفتاحية import الحزم من مكتبة Go القياسية حتى تتمكن من استخدام دوالها.

استيراد حزمة واحدة

import "fmt"

استيراد حزم متعددة باستخدام كتلة استيراد (import block)

import (
    "fmt"
    "math"
    "strings"
)

استخدم الدوال من الحزم المستوردة مع اسم الحزمة كبادئة

package main

import (
    "fmt"
    "strings"
    "math"
)

func main() {
    upper := strings.ToUpper("hello")
    fmt.Println(upper) // المخرجات: HELLO

    root := math.Sqrt(16)
    fmt.Println(root) // المخرجات: 4
}

حزم المكتبة المعيارية الشائعة

"fmt"     // الإدخال/الإخراج المنسق (Print, Scan, Sprintf)
"strings" // معالجة النصوص (ToUpper, Contains, Replace)
"math"    // الدوال الرياضية (Sqrt, Pow, Pi)
"strconv" // تحويلات النصوص (Itoa, Atoi)

يمكنك الوصول إلى الدوال من حزمة باستخدام packagename.FunctionName. تسمح لك لغة Go فقط باستيراد الحزم التي تستخدمها بالفعل — تؤدي عمليات الاستيراد غير المستخدمة إلى حدوث خطأ في الترجمة (compile error).

challenge icon

التحدي

متوسط

أصلح جملة الاستيراد في utils.go لكي تعمل الدوال بشكل صحيح. تحتاج إلى استيراد حزمتي strings و math:

  • FormatText تستخدم strings.ToUpper
  • ContainsWord تستخدم strings.Contains
  • SquareRoot تستخدم math.Sqrt

ورقة مرجعية

يبدأ كل ملف Go بتصريح package. استخدم الكلمة المفتاحية import لجلب الحزم من مكتبة Go القياسية.

استيراد حزمة واحدة:

import "fmt"

استيراد حزم متعددة باستخدام كتلة استيراد (import block):

import (
    "fmt"
    "math"
    "strings"
)

الوصول إلى الدوال من الحزم المستوردة باستخدام packagename.FunctionName:

package main

import (
    "fmt"
    "strings"
    "math"
)

func main() {
    upper := strings.ToUpper("hello")
    fmt.Println(upper) // المخرجات: HELLO

    root := math.Sqrt(16)
    fmt.Println(root) // المخرجات: 4
}

حزم المكتبة القياسية الشائعة:

"fmt"     // الإدخال/الإخراج المنسق (Print, Scan, Sprintf)
"strings" // معالجة النصوص (ToUpper, Contains, Replace)
"math"    // الدوال الرياضية (Sqrt, Pow, Pi)
"strconv" // تحويلات النصوص (Itoa, Atoi)

ملاحظة: تسمح لك Go فقط باستيراد الحزم التي تستخدمها بالفعل — تتسبب عمليات الاستيراد غير المستخدمة في حدوث خطأ أثناء التجميع (compile error).

جرّب بنفسك

package main

import (
    "bufio"
    "fmt"
    "os"
    "strconv"
    "strings"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    scanner.Scan()
    line := scanner.Text()

    parts := strings.Fields(line)
    numStr := parts[len(parts)-1]
    text := strings.Join(parts[:len(parts)-1], " ")
    num, _ := strconv.ParseFloat(numStr, 64)

    fmt.Printf("Upper: %s\n", FormatText(text))
    fmt.Printf("Contains 'world': %t\n", ContainsWord(text, "world"))
    fmt.Printf("Sqrt: %.2f\n", SquareRoot(num))
}
quiz iconاختبر نفسك

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

جميع دروس Object Oriented Programming