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

المؤشرات من النوع Nil

جزء من قسم Fundamentals في رحلة GO على Coddy — الدرس 65 من 109.

إن nil pointer هو مؤشر لا يشير إلى أي شيء. وهو القيمة الصفرية (zero value) لأنواع المؤشرات.

قم بالتصريح عن مؤشر nil:

var ptr *int
fmt.Println(ptr)
fmt.Println(ptr == nil)

يوضح المخرج أن المؤشر هو nil:

<nil>
true

محاولة إلغاء إسناد مؤشر فارغ (nil pointer) تؤدي إلى حدوث panic:

var ptr *int
// سيؤدي هذا إلى تعطل برنامجك
// fmt.Println(*ptr)

تحقق دائماً مما إذا كان المؤشر (pointer) يساوي nil قبل إلغاء المرجعية (dereferencing):

if ptr != nil {
    fmt.Println(*ptr)
}
challenge icon

التحدي

مبتدئ

في هذا التحدي، ستعمل مع مؤشرات nil في لغة Go. مؤشر nil هو مؤشر لا يشير إلى أي عنوان ذاكرة.

مهمتك هي التحقق مما إذا كان المؤشر nil وطباعة رسالة مناسبة.

يحتوي الكود بالفعل على متغير مؤشر تم تعيينه إلى nil. تحتاج إلى إضافة كود للتحقق مما إذا كان المؤشر nil وطباعة رسالة بناءً على ذلك.

ورقة مرجعية

الـ nil pointer هو مؤشر لا يشير إلى أي شيء. وهو القيمة الصفرية (zero value) لأنواع المؤشرات.

التصريح عن nil pointer:

var ptr *int
fmt.Println(ptr)        // <nil>
fmt.Println(ptr == nil) // true

تحقق دائماً مما إذا كان المؤشر nil قبل إلغاء المرجعية (dereferencing) لتجنب التوقف المفاجئ (panics):

if ptr != nil {
    fmt.Println(*ptr)
}

جرّب بنفسك

package main

import "fmt"

func main() {
	// هذا مؤشر nil لنوع عدد صحيح (int)
	var ptr *int
	
	// TODO: تحقق مما إذا كان ptr هو nil
	// إذا كان nil، اطبع "The pointer is nil"
	// إذا لم يكن nil، اطبع "The pointer is not nil"
	
	fmt.Println("Program completed")
}
quiz iconاختبر نفسك

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

جميع دروس Fundamentals