tgoop.com/golangprofi/127
Create:
Last Update:
Last Update:
Ответ на «Сумма квадратов»
package mainРассмотрим функцию
import "fmt"
func SumOfSquares(c, quit chan int) {
y := 1
for {
select {
case c <- (y*y):
y++
case <-quit:
return
}
}
}
func main() {
mychannel := make(chan int)
quitchannel:= make(chan int)
sum:= 0
go func() {
for i := 1; i <= 5; i++ {
sum += <-mychannel
}
fmt.Println(sum)
quitchannel <- 0
}()
SumOfSquares(mychannel, quitchannel)
}
SumOfSquares
. Сначала на строке 4 мы объявляем переменную y
, после чего переходим к циклу For-Select
. В инструкциях select
прописано два кейса.•
case c <- (y*y):
служит для отправки квадрата y
по каналу c
, который принимается в горутине, созданной в основной рутине.•
case <-quit:
служит для получения сообщения из основной рутины, которое вернется из функции.#задача
BY Golang Юниор
Share with your friend now:
tgoop.com/golangprofi/127