2017-10-16 91 views
-7

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

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()  
} 
+4

[创建一个最小的,完整的,并且可验证示例](https://stackoverflow.com/help/mcve),并且更具体地,示出堆栈的定义。 –

+0

请显示整个代码。 – srf

+0

这就是它的全部。我正在学习,只是尝试从Way to Go的第6章开始练习。 – Ani

回答

1
  1. 定义Stack

    main
  2. 创建它的一个变量

  3. 通话Pop就可以了

代码:

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