golang sendstmt 代码
文件路径:/test/chan/sendstmt.go
/ run
/ Copyright 2011 The Go Authors. All rights reserved.
/ Use of this source code is governed by a BSD-style
/ license that can be found in the LICENSE file.
/ Test various parsing cases that are a little
/ different now that send is a statement, not an expression.
package main
func main() {
chanchan()
sendprec()
}
func chanchan() {
cc := make(chan chan int, 1)
c := make(chan int, 1)
cc <- c
select {
case <-cc <- 2:
default:
panic("nonblock")
}
if <-c != 2 {
panic("bad receive")
}
}
func sendprec() {
c := make(chan bool, 1)
c <- false || true / not a syntax error: same as c <- (false || true)
if !<-c {
panic("sent false")
}
}