Golang'da diğer programlama dillerinin çoğunda olduğu gibi switch ifadesi vardır . Golang'daki switch ifadesi, bir değişkeni veya ifadeyi birden fazla durumda değerlendirmenize olanak tanır ve genellikle birden fazla if-else ifadesi yazıldığında kodun çirkin ve tekrarlayıcı görünmesine neden olduğunda kullanılır.

Go'da switch ifadesi, bir ifadenin değerine (veya türüne) göre yürütmeyi etkili bir şekilde yönlendiren çok yönlü bir dallanma ifadesidir. Go'da iki ana switch ifadesi türü vardır :
- İfade Anahtarı
- Tip Anahtarı
Örneğin:
package main
import "fmt"
func main() {
day := 4
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
default:
fmt.Println("Invalid day")
}
}
Golang'da Switch ifadesi sözdizimi
switch optstatement; optexpression {
case expression1:
// Khối code
case expression2: # Expression Switch
// Khối code
default:
// Khối code
}
switch var := interfaceValue.(type) {
case type1:
// Khối code
case type2: # Type Switch
// Khối code
default:
// Khối code
}
İfade Anahtarı
İfade Değiştirme, bir ifadeyi değerlendirir ve bu ifadenin değerine göre bir duruma geçer. Hiçbir ifade sağlanmazsa, anahtar varsayılan olarak true olur .
Sözdizimi
switch optstatement; optexpression {
case expression1:
// Khối code
case expression2:
// Khối code
default:
// Khối code
}
optstatement: İsteğe bağlı ifade (örneğin değişken bildirimi).
optexpression: İsteğe bağlı ifade (atlanırsa varsayılanı true olur ).
İsteğe bağlı komutla örnek
Burada bir gün değişkeni tanımlayan isteğe bağlı bir ifade tanıtılmaktadır . Switch ifadesi daha sonra günü farklı durumlara göre değerlendirir .
package main
import "fmt"
func main() {
switch day := 4; day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
default:
fmt.Println("Invalid day")
}
}
Sonuç:
Thursday
İsteğe bağlı İfade ile Örnek
Hiçbir ifade belirtilmezse Golang'daki switch ifadesi ifadenin doğru olduğunu varsayacaktır. Bu, case ifadelerinde boolean koşulları kullanmamızı sağlar.
package main
import "fmt"
func main() {
day := 4
switch {
case day == 1:
fmt.Println("Monday")
case day == 4:
fmt.Println("Thursday")
case day > 5:
fmt.Println("Weekend")
default:
fmt.Println("Invalid day")
}
}
Sonuç
Thursday
Tip Anahtarı
Tür Anahtarı, bir arayüz değerinin değerinden ziyade türüne göre dallanmak için kullanılır. Bu, özellikle bilinmeyen türdeki değişkenlerle uğraşırken faydalıdır.
Sözdizimi
switch var := interfaceValue.(type) {
case type1:
// Khối code
case type2:
// Khối code
default:
// Khối code
}
Örneğin:
Bu örnekte, tür dönüşümünü göstermek için aynı gün değişkeni interface{} içine sarılmıştır .
package main
import "fmt"
func main() {
var day interface{} = 4
switch v := day.(type) {
case int:
switch v {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
default:
fmt.Println("Invalid day")
}
default:
fmt.Printf("Unknown type: %T\n", v)
}
}
Sonuç:
Thursday