Go의 Python 스타일 생성기
Go에서 고루틴은 Python 생성기처럼 활용될 수 있습니다. 가다. 제공된 코드는 간단한 방식으로 질문 66을 다시 작성합니다.
package main import "fmt" func fibonacci(c chan int) { x, y := 1, 1 for { c <- x x, y = y, x + y } } func main() { c := make(chan int) go fibonacci(c) for i := 0; i < 10; i++ { fmt.Println(<-c) } }
분석
대체 접근 방식
이러한 문제를 해결하려면 다음을 고려하세요. 다음 코드:
package main import "fmt" func fib(n int) chan int { c := make(chan int) go func() { x, y := 0, 1 for i := 0; i <= n; i++ { c <- x x, y = y, x+y } close(c) }() return c } func main() { for i := range fib(10) { fmt.Println(i) } }
이 예에서:
위 내용은 Go 채널이 Python 생성기를 모방할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!