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ölgelemesini öğrenelim. Bu, yalnızca if bloğu ve onunla ilişkili 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 bu blok içinde var olan yeni bir değişken oluşturmak için if ifadesinde değişken gölgelemesini kullanalım:

if y := x * 2; y > 15 {
    fmt.Println("y is greater than 15:", y)
    // y yalnızca bu blokta var
} else {
    fmt.Println("y is not greater than 15:", y)
    // y else bloklarında da mevcut
}

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 nasıl çalıştığını gösterir - y değişkenine yalnızca bildirildiği koşullu bloklar içinde erişilebilir.

challenge icon

Görev

Başlangıç

Bu meydan okumada, bir if ifadesinde değişken gölgeleme alıştırması yapacaksın. Bir if bloğunun içinde tanımlanan bir değişkenin, dış kapsamdaki bir değişkenle aynı ada, ancak farklı bir değere sahip olabileceğini göreceksin.

Kodda dış kapsamda bir message değişkeni bulunuyor. Görevin, if bloğunun içinde aynı ada sahip gölgelenmiş bir değişken oluşturmak ve ardından gölgeleme etkisini görmek için her iki değişkeni yazdırmak.

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

Kendi başına pratik yap: Online Go derleyicisi