Menu
Coddy logo textTech

Nil İşaretçiler

Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası — ders 65 / 109.

Bir nil pointer, hiçbir şeyi işaret etmeyen bir işaretçidir. İşaretçi türleri için sıfır değeridir (zero value).

Bir nil pointer tanımlayın:

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

Çıktı, işaretçinin nil olduğunu gösterir:

<nil>
true

Nil bir işaretçiyi (pointer) dereference etmeye çalışmak paniğe (panic) neden olur:

var ptr *int
// Bu programınızı çökertecektir
// fmt.Println(*ptr)

Bir işaretçiyi (pointer) dereference etmeden önce her zaman nil olup olmadığını kontrol edin:

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

Görev

Başlangıç

Bu meydan okumada, Go'daki nil pointer'lar ile çalışacaksınız. Bir nil pointer, herhangi bir bellek adresini göstermeyen bir işaretçidir.

Göreviniz, bir işaretçinin nil olup olmadığını kontrol etmek ve uygun bir mesaj yazdırmaktır.

Kodda zaten nil olarak ayarlanmış bir işaretçi değişkeni bulunmaktadır. İşaretçinin nil olup olmadığını kontrol etmek ve buna göre bir mesaj yazdırmak için kod eklemeniz gerekiyor.

Kopya kağıdı

Bir nil pointer, hiçbir şeyi işaret etmeyen bir işaretçidir. İşaretçi türleri için sıfır değeridir (zero value).

Bir nil pointer tanımlayın:

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

Panic (çökme) durumlarından kaçınmak için bir işaretçiyi dereference etmeden (başvurusunu çözmeden) önce her zaman nil olup olmadığını kontrol edin:

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

Kendin dene

package main

import "fmt"

func main() {
	// Bu bir tam sayıya (integer) işaret eden nil pointer'dır
	var ptr *int
	
	// TODO: ptr'nin nil olup olmadığını kontrol et
	// Eğer nil ise, "The pointer is nil" yazdır
	// Eğer nil değilse, "The pointer is not nil" yazdır
	
	fmt.Println("Program completed")
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler