Latest web development tutorials

Перейти языка выберите заявление

Go язык условных операторов Go язык условных операторов

выберите Go представляет собой структуру управления в подобном заявлении для коммутатора для связи. Каждый случай должен быть операцией связи, либо отправки или получения.

выбрать случайное исполнение случай может работать. Если нет ни одного случая, чтобы бежать, он будет заблокирован до тех пор дело не может быть запущена. пункт по умолчанию всегда должен быть запущен.

грамматика

Перейти синтаксис языка программирования оператор выбора выглядит следующим образом:

select {
    case communication clause  :
       statement(s);      
    case communication clause  :
       statement(s); 
    /* 你可以定义任意数量的 case */
    default : /* 可选 */
       statement(s);
}

Ниже описывается синтаксис оператора выбора:

  • Каждый случай должен быть связь
  • Все выражение канала будет оцениваться
  • Все выражения будут посланы быть оценены
  • Если сообщение может быть любым, оно выполняет, другие игнорируются.
  • Если более чем один случай может работать, выбрать случайным образом выберет справедливое исполнение. Другое не может быть выполнена.
    В противном случае:
    1. Если есть по умолчанию пункт, то оператор выполняется.
    2. Если нет пункта не по умолчанию, выберите блок, пока сообщение может выполняться; Перейти к каналу или повторно не оцененного значения.

примеров

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")
   }    
}

Приведенный выше код выполняется в результате:

no communication

Go язык условных операторов Go язык условных операторов