`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: 20Son 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: 10Bu, 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.
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)
}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 VermeKendi başına pratik yap: Online Go derleyicisi