π©Select-Case
Select-Case Syntax
select {
case <expr> : {
<case body>
}
// or, you can declare variable(s)
case let <varPattern> = <expr> : {
<case body>
}
// default is optional
default: {
<case body>
}
}
Working Example
package main
import "fmt" as fmt
fun Unit main() {
let ch1 = make(chan String, 1)
let ch2 = make(chan String, 1)
ch1 <- "Hello from ch1"
zero String msg
zero Bool ok
select {
case let msg, ok = <-ch1: {
if ok {
fmt.Println("Case 1:", msg)
} else {
fmt.Println("ch1 closed")
}
}
case <-ch2: {
fmt.Println("Case 2: received from ch2")
}
default: {
fmt.Println("Default case: nothing ready")
}
}
}
Last updated