DEV Community

Aydın Yakar
Aydın Yakar

Posted on • Edited on

5 2

Golang 101: Switch

Çoklu sayıda koşulun sınanması durumunda tercih edilir. Sayfa sonuna fallthrough ile ilgili bilgi eklendi, daha önce yazıyı okuyanlar o kısmı da tekrardan gözden geçirmelidir.

package main

import (
    "fmt"
    "time"
)

func main() {

    // Genel Kullanım
    i := 2
    switch i {
    case 1:
        fmt.Println("i değişkeni 1'e eşittir.")
    case 2:
        fmt.Println("i değişkeni 2'ye eşittir.")
    case 3:
        fmt.Println("i değişkeni 3'e eşittir.")
    }

    // Çoklu Değer
    switch time.Now().Weekday() {
    case time.Saturday, time.Sunday:
        fmt.Println("Hafta sonu..")
    default:
        fmt.Println("Hafta içi..")
    }

    // Koşullu Switch
    t := time.Now()
    switch {
    case t.Hour() < 12:
        fmt.Println("Öğleden önce")
    default:
        fmt.Println("Öğleden sonra")
    }
}
Enter fullscreen mode Exit fullscreen mode
i değişkeni 2'ye eşittir.
Hafta içi..
Öğleden sonra
Enter fullscreen mode Exit fullscreen mode

çalıştır!

Genel Kullanım

    i := 2
    switch i {
    case 1:
        fmt.Println("i değişkeni 1'e eşittir.")
    case 2:
        fmt.Println("i değişkeni 2'ye eşittir.")
    case 3:
        fmt.Println("i değişkeni 3'e eşittir.")
    }
Enter fullscreen mode Exit fullscreen mode

Tanımlanan değişken case ile eşit ise ilgili işlev gerçeleşir.

Çoklu Seçim

    switch time.Now().Weekday() {
    case time.Saturday, time.Sunday:
        fmt.Println("Hafta sonu..")
    default:
        fmt.Println("Hafta içi..")
    }
Enter fullscreen mode Exit fullscreen mode

Günlerin Cumartesi ve Pazar olması durumu yani iki koşulunda gerçekleşmesi durumununa örnektir. Koşulun birden fazla sonuca uygunluğu bu yöntemle denetlenebilir.

Koşullu Switch

    t := time.Now()
    switch {
    case t.Hour() < 12:
        fmt.Println("Öğleden önce")
    default:
        fmt.Println("Öğleden sonra")
    }
Enter fullscreen mode Exit fullscreen mode

Diğer örnekler de eşit olması durumu göz önüne alınarak koşul belirtiliyordu fakat sonucun eşit olmaması durumları da switch ile denetlenebilir.

YENİ BİLGİ: Yeni öğrendiğim fallthrough komutu ile sonraki case'e yani koşula geçmesi sağlanabilir.

    i := 45
    switch {
    case i < 10:
        fmt.Println("i 10'dan küçük")
        fallthrough
    case i < 50:
        fmt.Println("i 50'den küçük")
        fallthrough
    case i < 100:
        fmt.Println("i 100'den küçük")
    }
Enter fullscreen mode Exit fullscreen mode

Bu durumda çıktı önce "i 50'den küçük" yazdıracak ve fallthrough belirtildiği için sonraki casee geçip "i 100'den küçük" yazdıracaktır.

Top comments (0)

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit