Bu işlevde, go anahtar sözcüğünü kullandığımı görebilirsiniz.Git anahtar sözcüğünü kullanmadığımda bir işlev çalışmıyor
package main
import (
"fmt"
"math"
)
func main() {
c := make(chan string)
go findGreatestDivisor(4, c)
for i := 0; i <= 1; i++ {
fmt.Println(<-c)
}
}
func findGreatestDivisor(num float64, c chan string) {
var counter float64 = 10000
for i := 9999; i > 0; i-- {
if math.Mod(num, counter) == 0 {
fmt.Println("Check..", math.Mod(4, 1))
c <- fmt.Sprintf("%f is divisble by %d", num, i)
}
counter--
}
}
Çalışıyor. Bana en büyük tamsayıyı veriyor. Ama şimdi merak almak ve burada işlev
go findGreatestDivisor(4,c)
ben sadece
findGreatestDivisor(4,c)
yaptığınızda bana hata
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan send]: main.findGreatestDivisor(0x4010000000000000,
0xc82001a0c0)
/home/ubuntu/workspace/test.go:21 +0x37c main.main()
/home/ubuntu/workspace/test.go:10 +0x61 exit status 2
o neden verir denilen gitmek anahtar kelimeyi silmek? The Go Programming Language Specification
Tamam peter! Çok teşekkürler! En iyisi – Jon