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>
trueNil 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)
}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) // truePanic (çö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")
}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
4Karşılaştırma ve Mantıksal Operatörler
Karşılaştırma Operatörleri - Bölüm 1Karşılaştırma Operatörleri - Bölüm 2Mantıksal VE OperatörüMantıksal VEYA OperatörüMantıksal DEĞİL OperatörüOperatör Önceliği TemelleriÖzet - Karşılaştırma Yapma7Kontrol Akışı: Döngüler
`for` Döngüsü Nedir?`for` Döngüsü - Temel`for` Döngüsü - Sadece Koşul`break` Anahtar Kelimesi`continue` Anahtar Kelimesiİç İçe DöngülerÖzet - İşlemleri Tekrarlama2Değişkenler ve Temel Veri Tipleri
Değişken nedir?`:=` ile Tür ÇıkarımıTam Sayılar (int)Ondalıklı SayılarBooleanlarStringlerSıfır DeğerlerSabitlerİsimlendirme KurallarıÖzet - Değişkenler ve Türler5Temel Giriş/Çıkış
Biçimlendirilmiş ÇıktıBiçim BelirteçleriVeri Tiplerini YazdırmaTemel Kullanıcı Girdisi AlmaÖzet - Giriş ve Çıkış8Fonksiyonlar
Fonksiyonları AnlamakFonksiyon TanımlamaFonksiyonları ÇağırmaFonksiyon ParametreleriTek Bir Değer DöndürmeBirden Fazla Değer Döndürmeİsimlendirilmiş Dönüş DeğerleriFonksiyon Kapsamı TemelleriÖzet - Yeniden Kullanılabilir Kod Oluşturma3Temel Operatörler
Aritmetik OperatörlerBölme OperatörüModulo OperatörüAtama OperatörüBileşik Atama OperatörleriArtırma ve AzaltmaÖzet - Hesaplamalar6Kontrol Akışı: Koşullu İfadeler
`if` İfadesi`else` Anahtar Kelimesi`else if` Anahtar Kelimesi`if` İçinde Değişken GölgelemeDeğişkenleri Başlatma`switch` İfadesiİfadeli `switch`İfadesiz `switch``fallthrough` Anahtar KelimesiÖzet - Karar Verme