Menu
Coddy logo textTech

Fonksiyonlarda İşaretçi Kullanımı

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

Fonksiyonlar, değişkenleri işaretçiler (pointers) aracılığıyla kabul edebilir ve değiştirebilir. Bu, fonksiyonların sadece bir kopyayı değil, orijinal değeri değiştirmesine olanak tanır.

Bir değeri işaretçi aracılığıyla değiştiren bir işlev oluşturun:

func main() {
    number := 10
    fmt.Println("Before:", number)
    
    // number'ın adresini geçir
    doubleValue(&number)
    
    fmt.Println("After:", number)
}

func doubleValue(num *int) {
    // İşaretçinin adresindeki değeri değiştir
    *num = *num * 2
}

Çıktı, fonksiyon tarafından değiştirilen değeri gösterir:

Before: 10
After: 20

&number değerini geçirdiğimizde, fonksiyon bir işaretçi alır ve orijinal değişkeni değiştirebilir.

challenge icon

Görev

Başlangıç

Bu mücadelede, fonksiyonlarda işaretçileri kullanma pratiği yapacaksın. Bir dizeye işaretçi alan ve dize değerini büyük harfli olacak şekilde değiştiren bir fonksiyonu tamamlaman gerekiyor.

makeUppercase fonksiyonu senin için zaten tanımlandı. Görevin, strings.ToUpper() fonksiyonunu kullanarak işaretçinin işaret ettiği dizeyi değiştirmek.

Kendin dene

package main

import (
	"fmt"
	"strings"
)

// makeUppercase bir dize işaretçisi alır ve dizeyi büyük harfe dönüştürür
func makeUppercase(strPtr *string) {
	// TODO: strPtr'nin işaret ettiği dizeyi değiştirmek için strings.ToUpper() kullanın
	// İpucu: Dize değerine erişmek için işaretçinin referansını çözmeniz (dereference) gerekir
	? = strings.ToUpper(?)
	
}

func main() {
	// Halihazırda bir dize değişkenimiz var
	message := "hello, world"
	
	// Orijinal mesajı yazdır
	fmt.Printf("Original message: %s\n", message)
	
	// message değişkeninin adresi ile makeUppercase fonksiyonunu çağır
	makeUppercase(&message)
	
	// Değiştirilmiş mesajı yazdır
	fmt.Printf("Modified message: %s\n", message)
}
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

Kendi başına pratik yap: Online Go derleyicisi