2014-12-05 96 views
0

早安所有,如何使用多個。去文件在同一應用程序

我是新來Golang。我想將我的一些功能移到單獨的文件中,這樣我就不會在最後有10,000行.go文件。大聲笑。我創建的兩個文件都有相同的包,名爲main。我是否需要將軟件包名稱更改爲應用程序特定?無論如何,我如何獲得這兩個文件談話?

實施例:

MainFile.go:

package main 

import (
    "fmt" 
) 

func main() { 
    fmt.Println("Hello World!") 

    Test() 
} 

NewFile.go:

package main 

import (
    "fmt" 
) 

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

的測試方法是在第二個文件,但不能被第一到達。我相信這是我失蹤的一些基本問題。

感謝

更新: 我試着在命令行上指定這樣的:去建立MainFile.go NewSourceFile.go。它回來沒有錯誤,但從來沒有建立二進制。我怎樣才能讓它現在輸出二進制文件?

+1

您是否使用'go run'?這些文件在同一個文件夾中嗎? – 2014-12-05 11:32:56

+0

您可以將同一個包*的多個文件放在同一個文件夾*中。把你的'MainFile.go'和'NewFile.go'放在一個文件夾中,例如。 'MyProg'。如果您在MyProg文件夾中運行'go build',則會創建一個可執行文件(windows上的MyProg.exe)。 – ANisus 2014-12-05 11:47:43

+0

我嘗試運行go build MainFile.go時出現以下錯誤。 #命令行參數 。\ MainFile.go:10:undefined:測試 – Josh 2014-12-05 15:26:56

回答

2

如果您運行的是go run MainFile.go,則Test()將不會被找到,因爲它不在該文件中。您必須構建包然後運行包:

在2個文件所在的文件夾內,運行go build,您將在該文件夾中獲得一個二進制文件。然後運行二進制:./MyPackage

+0

當我嘗試運行go build MainFile.go時,出現以下錯誤。 #命令行參數。\ MainFile.go:10:undefined:測試 – Josh 2014-12-05 15:27:14

+0

只需在目錄中運行'go build'即可。不要指定文件。您正在構建不是特定文件的包。如果一切順利,終端上什麼也看不到。如果你使用'ls'(或者dir在windows中),你會看到一個二進制文件已經被創建。現在運行二進制文件。 – joshua 2014-12-05 16:40:40

+0

我像你說的那樣在目錄中運行'go build',控制檯上沒有顯示任何錯誤。沒有二進制文件被創建。我檢查了GOPATH的根目錄和目錄中沒有文件。我指定了-o Test.exe,並創建了一個不能運行的8KB文件。所以我仍然不確定我在做什麼錯誤 – Josh 2014-12-05 17:23:11

相關問題