2017-10-16 109 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