func的语法Golang错误

时间:2017-10-16 04:40:16

标签: go

为什么下面的代码会抛出意外的func错误?我看到错误./func_correct.go:4:语法错误:意外的功能,期待名称

package main

func (st  *Stack)  Pop() int {
        v := 0
        for ix := len (st) - 1; ix >= 0; ix-- {
                if v = st[ix]; v != 0 {
                    st[ix] = 0
                    return v
                }
        }
        return 0
}

func main() {
   Pop()    
}

1 个答案:

答案 0 :(得分:1)

  1. 定义Stack类型

  2. main中创建一个变量

  3. 在其上调用Pop

  4. 代码:

    package main
    
    import "fmt"
    
    type Stack []int
    
    func (st Stack) Pop() int {
        v := 0
        for ix := len(st) - 1; ix >= 0; ix-- {
            if v = st[ix]; v != 0 {
                st[ix] = 0
                return v
            }
        }
        return 0
    }
    
    func main() {
        s := Stack{1, 2, 3, 4}
        i := s.Pop()
        fmt.Println(i)
    }
    

    https://play.golang.org/p/PSac-C0xJM