Rumah >pembangunan bahagian belakang >Golang >Skop pembolehubah dalam kotak suis

Skop pembolehubah dalam kotak suis

WBOY
WBOYke hadapan
2024-02-09 09:00:21698semak imbas

switch case 内变量的范围

editor php Yuzai akan memperkenalkan kepada anda skop pembolehubah dalam pernyataan kes suis. Dalam pernyataan kes suis, skop pembolehubah adalah terhad kepada blok kes semasa dan tidak akan menjejaskan blok kes lain. Ini bermakna walaupun nama pembolehubah yang sama digunakan dalam blok kes yang berbeza, mereka bebas antara satu sama lain dan tidak akan menyebabkan konflik. Ciri ini membolehkan kami menggunakan nama pembolehubah yang sama dalam blok kes yang berbeza tanpa perlu risau tentang ralat atau konflik. Oleh itu, apabila menulis pernyataan kes suis, kami boleh mengendalikan pembolehubah dengan lebih fleksibel dan meningkatkan kebolehbacaan dan kebolehselenggaraan kod.

Isi soalan

package main

import "fmt"

func main() {
    x := 10
    switch x {
    case 0:
        y := 'a'
        fmt.Printf("%c\n", y)
    case 1:
        // y = 'b' // this can't compile,
        y := 'b'
        fmt.Printf("%c\n", y)
    default:
        y := '-'
        fmt.Printf("%c\n", y)
    }
}

Nampaknya setiap fail tempatan case 中的 y 都是包含 case tidak kelihatan kepada kes lain. Setahu saya:

  • {} 可以创建本地范围,但每个 case 没有 {}.
  • Jawa berbeza.

Saya menyemak dalam talian dan tidak mendapat definisi yang jelas. Saya tahu kita boleh mengisytiharkan pembolehubah skop suis dalam bahagian switchinitialization.

Soalan:

  1. Bolehkah anda mengesahkan bahawa di Golang, skop pembolehubah di dalam suis case adalah setempat kepada kes itu sendiri?
  2. Adakah ini reka bentuk khas? Setiap case都没有{} yang dinyatakan di atas tidak mempunyai {}.

Penyelesaian

Spesifikasi: Blok:

Seperti yang anda boleh lihat dalam spesifikasi: setiap klausa (cth. case)充当隐式块,无需显式使用 {}) bertindak sebagai blok tersirat tanpa penggunaan {} secara eksplisit.

Atas ialah kandungan terperinci Skop pembolehubah dalam kotak suis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam