1. 程式人生 > >【轉】Golang學習之同一個package中函式互相呼叫的問題

【轉】Golang學習之同一個package中函式互相呼叫的問題

問題程式碼如下

a.go:

package main

func main(){
    Test()
}

b.go:

package main

import "fmt"

func Test(){
    fmt.Println("Hello World!")
}

這兩個檔案都在同一個資料夾下,為什麼在編譯的時候提示:

command-line-arguments
.\a.go:4: undefined: Test

為什麼會出現這樣的問題呢,同一個package下不應該都是可以互相呼叫的嗎?

錯誤原因:b.go 並未一起編譯

解決方案:

go run *.go

or

go build .
./run

注1:包和package有關係:main包和main函式比較特殊,是程式的入口,其他的包就要和資料夾名字一樣

注2:go 裡面一個目錄為一個package, 一個package級別的func, type, 變數, 常量, 這個package下的所有檔案裡的程式碼都可以隨意訪問, 也不需要首字母大寫.