İşaretçi Referansını Çözme
Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası — ders 63 / 109.
Pointer'ların dereference edilmesi (*), bir bellek adresinde saklanan değere erişmenizi sağlar. Buna pointer'ı "dereference" etmek denir.
Bir değişken ve ona ait bir pointer oluşturun:
func main() {
number := 42
pointer := &number
// Değeri elde etmek için pointer'ı dereference edin
value := *pointer
fmt.Println("Pointer:", pointer)
fmt.Println("Dereferenced value:", value)
}Çıktı, hem işaretçiyi hem de işaret ettiği değeri gösterir:
Pointer: 0xc000018030
Dereferenced value: 42Bir pointer değişkeninin önündeki yıldız işareti (*), o bellek adresindeki gerçek değere erişir.
Görev
BaşlangıçBu meydan okumada, Go'da pointer dereferencing (işaretçi başvurusu giderme) pratiği yapacaksınız. String değerine sahip bir message değişkenimiz ve onu işaret eden bir messagePtr pointer'ımız var.
Göreviniz, işaret ettiği değere erişmek ve onu yazdırmak için pointer'ı dereference etmektir.
Kopya kağıdı
Bir işaretçinin (pointer) başvurusunu kaldırmak (dereference) ve bellek adresindeki değere erişmek için yıldız (*) operatörünü kullanın:
number := 42
pointer := &number
// Değeri almak için işaretçinin başvurusunu kaldırın
value := *pointer
fmt.Println("Pointer:", pointer) // 0xc000018030
fmt.Println("Dereferenced value:", value) // 42Bir işaretçi değişkeninden önceki * operatörü, o bellek adresinde saklanan gerçek değere erişir.
Kendin dene
package main
import "fmt"
func main() {
// İşte dize değişkenimiz
message := "Hello, pointers!"
// Bu, message değişkenimize bir işaretçidir (pointer)
messagePtr := &message
// TODO: İşaret ettiği değeri almak için messagePtr'yi dereference edin
// ve bunu 'value' değişkeninde saklayın
value := ""
// Sonuçları yazdır
fmt.Println("The pointer points to the value:", value)
}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 Verme9İşaretçiler
İşaretçi Nedir?İşaretçi Değişkenlerini TanımlamaAdres Operatörüİşaretçi Referansını ÇözmeFonksiyonlarda İşaretçi KullanımıNil İşaretçilerÖzet - İşaretçileri Anlamak