Menu
Coddy logo textTech

`if` İçinde Değişken Gölgeleme

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

if ifadelerinde değişken gölgeleme (variable shadowing) hakkında bilgi edinelim. Bu, yalnızca if bloğu ve onunla ilgili else blokları içinde var olan bir değişken oluşturmanıza olanak tanır.

İlk olarak, koşullu ifademizin dışında bir değişken oluşturalım:

x := 10
fmt.Println("Original x value:", x)

Bu kodu yürüttükten sonra, programımız boyunca kullanabileceğimiz 10 değerine sahip bir x değişkenimiz olacak.

Şimdi, yalnızca o blok içinde var olan yeni bir değişken oluşturmak için bir if ifadesinde değişken gölgeleme (variable shadowing) kullanalım:

if y := x * 2; y > 15 {
    fmt.Println("y is greater than 15:", y)
    // y sadece bu blokta mevcuttur
} else {
    fmt.Println("y is not greater than 15:", y)
    // y ayrıca else bloklarında da mevcuttur
}

Bu kodu çalıştırdıktan sonra Go, y değerini 20 (yani x * 2) olarak hesaplayacak, 15'ten büyük olup olmadığını kontrol edecek ve ardından ilk bloğu çalıştıracaktır. Çıktı ekranda şu şekilde görünecektir:

y is greater than 15: 20

Son olarak, if ifadesinden sonra değişkenlerimize erişmeyi deneyelim:

// fmt.Println(y) bir hataya neden olur - y burada mevcut değil
fmt.Println("x is still:", x)

Bu kodu çalıştırdıktan sonra x değişkenine hâlâ erişebiliriz, ancak y artık mevcut değildir çünkü sadece if ve else blokları içinde mevcuttu. Ekranda şu çıktı görünecektir:

x is still: 10

Bu, if ifadelerinde değişken gölgelemenin (variable shadowing) nasıl çalıştığını gösterir - y değişkenine yalnızca tanımlandığı koşullu bloklar içinden erişilebilir.

challenge icon

Görev

Başlangıç

Bu meydan okumada, bir if ifadesinde değişken gölgeleme (variable shadowing) pratiği yapacaksınız. Bir if bloğu içinde tanımlanan bir değişkenin, dış kapsamdaki bir değişkenle nasıl aynı isme ancak farklı bir değere sahip olabileceğini göreceksiniz.

Kodun dış kapsamında bir message değişkeni bulunmaktadır. Göreviniz, if bloğu içinde aynı isme sahip gölgelenmiş bir değişken oluşturmak ve ardından gölgeleme etkisini görmek için her iki değişkeni de yazdırmaktır.

Kopya kağıdı

if ifadelerindeki değişken gölgeleme (variable shadowing), yalnızca koşullu blok ve ilgili else blokları içinde var olan değişkenler oluşturmanıza olanak tanır.

if ifadelerinde değişken gölgeleme sözdizimi:

if variable := expression; condition {
    // değişken yalnızca bu blokta mevcuttur
} else {
    // değişken else bloklarında da mevcuttur
}

Örnek:

x := 10
if y := x * 2; y > 15 {
    fmt.Println("y is greater than 15:", y)
} else {
    fmt.Println("y is not greater than 15:", y)
}
// y'ye artık buradan erişilemez
fmt.Println("x is still:", x)

Gölgelenen değişken, dışarıda değil, yalnızca bildirildiği if ve else blokları içinde erişilebilirdir.

Kendin dene

package main

import "fmt"

func main() {
	// Dış kapsam değişkeni
	message := "Hello from outer scope"
	
	isLoggedIn := true
	
	if isLoggedIn {
		// YAPILACAK: "Hello from inner scope" değerine sahip 'message' adında yeni bir değişken oluşturun
		
		// Bu, iç kapsam mesajını yazdırır
		fmt.Println(message)
	}
	
	// Bu, dış kapsam mesajını yazdırır
	fmt.Println(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