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.
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)
}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 AnlamakKendi başına pratik yap: Online Go derleyicisi