Latest web development tutorials

Pergi bahasa pernyataan pilih

Pergi pernyataan bersyarat bahasa 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:
    1. Jika ada klausul default, pernyataan itu dijalankan.
    2. 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

Pergi pernyataan bersyarat bahasa Pergi pernyataan bersyarat bahasa