golang,大括号或返回时的奇怪错误

时间:2015-02-02 04:41:06

标签: go

func isPrimeNumber(possiblePrime int) bool {
    for underPrime := 2; underPrime < possiblePrime; underPrime++ {
        if possiblePrime%underPrime == 0 {
            return false
        }
    }
    return true
}


func findPrimeNumbers(channel chan int) {
    for i := 2; ; /* infinite loop */ i++ {
        // your code goes here
        if isPrimeNumber(i){
            chan <- i     <========error on this line
        }
        assert(i < 100) // i is afraid of heights
    }
}

我对此有错误但无法弄明白,需要帮助。感谢

语法错误:意外的分号或换行符,期待{ 失败

1 个答案:

答案 0 :(得分:1)

使用channel <- i代替chan <- i

在函数定义(channel chan int)中,channel是参数的名称,chan int是类型。为了澄清,您的功能可以重写为以下内容:

func findPrimeNumbers(primeNumberChannel chan int) {
    for i := 2; ; i++ {
        if isPrimeNumber(i){
            primeNumberChannel <- i  
        }
    }
}

此外,Go(http://golang.org/doc/faq#assertions)中无法使用assert

相关问题