Go有一个适用于频道的select语句.从文档:
select语句允许goroutine等待多个通信操作.
一个选择块直到其中一个案例可以运行,然后执行该案例.如果多个准备就绪,它会随机选择一个.
是否有Python等效的以下代码:
package main
import "fmt"
func main() {
c1 := make(chan int)
c2 := make(chan int)
quit := make(chan int)
go func() {
for i := 0; i < 10; i++ {
c1 <- i
}
quit <- 0
}()
go func() {
for i := 0; i < 2; i++ {
c2 <- i
}
}()
for {
select {
case <-c1:
fmt.Println("Received value from c1")
case <-c2:
fmt.Println("Received value from c2")
case <-quit:
fmt.Println("quit")
return …
Run Code Online (Sandbox Code Playgroud) 我希望我的应用程序更好地集成Mac OS X. 我已经阅读了Mac OS X Integration for Java,我已经知道我必须导入com.apple.eawt.*
并编写一些额外的代码.但是,如果我这样做,我的应用程序将无法在Windows上工作,因为缺少引用.如果我用C编写,我可以使用预处理器命令执行此操作,但这是Java.如何在不将代码文件分成2个分支的情况下执行此操作?
由于Python是一种鸭式语言,因此在Python中编写工厂类毫无意义? http://en.wikipedia.org/wiki/Factory_method_pattern