Pergi bahasa pernyataan pilih
Pergi pernyataan bersyarat bahasa
pilih Go adalah struktur kontrol dalam sebuah pernyataan yang sama untuk saklar untuk berkomunikasi. Setiap kasus harus menjadi operasi komunikasi, baik mengirim atau menerima.
pilih eksekusi kasus acak dapat dijalankan. Jika tidak ada kasus untuk menjalankan, itu akan diblokir sampai kasus dapat dijalankan. Sebuah klausul baku harus selalu berjalan.
tatabahasa
Pergi pemrograman sintaks bahasa pernyataan pilih adalah sebagai berikut:
select { case communication clause : statement(s); case communication clause : statement(s); /* 你可以定义任意数量的 case */ default : /* 可选 */ statement(s); }
Berikut ini menjelaskan sintaks dari pernyataan pilih:
- Setiap kasus harus komunikasi
- Semua ekspresi channel akan dievaluasi
- Semua ekspresi akan dikirim ke dievaluasi
- Jika komunikasi mungkin saja, ia melakukan, yang lainnya diabaikan.
- Jika lebih dari satu kasus dapat berjalan, Pilih secara acak akan memilih eksekusi yang adil. Lainnya tidak akan dieksekusi.
Jika tidak:- Jika ada klausul default, pernyataan itu dijalankan.
- Jika tidak ada klausul default, pilih blok sampai komunikasi dapat berjalan; Pergi ke saluran atau tidak nilai dievaluasi kembali.
contoh
package main import "fmt" func main() { var c1, c2, c3 chan int var i1, i2 int select { case i1 = <-c1: fmt.Printf("received ", i1, " from c1\n") case c2 <- i2: fmt.Printf("sent ", i2, " to c2\n") case i3, ok := (<-c3): // same as: i3, ok := <-c3 if ok { fmt.Printf("received ", i3, " from c3\n") } else { fmt.Printf("c3 is closed\n") } default: fmt.Printf("no communication\n") } }
Kode di atas dijalankan sebagai akibat dari:
no communication