在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/GO/ 為何自定義包中的方法首字母大寫仍然undefined

為何自定義包中的方法首字母大寫仍然undefined

stack.go

package stack

type Stack struct{
    i        int
    data  [10]int
}

func (S *Stack) Push(n int) {
    S.data[S.i] = n
    S.i++
}

demothree.go

package main

import(
"fmt"
"stack"
)

func main() {
    var s stack.Stack
    fmt.Println(s)
    stack.Push(8)
    fmt.Println(s)
}

執(zhí)行結果為:

λ go run demothree.go
# command-line-arguments
.\demothree.go:11:2: undefined: stack.Push

看著教程書的答案寫的,仍是很是苦惱。。

回答
編輯回答
朽鹿

stack.Push沒這個函數啊。PushStack這個結構體的一個方法。你應該寫成s.Push

2018年3月16日 04:40