[踩坑] Go Modules 使用

Euan發表於2020-02-13

go版本

 go version
go version go1.13.4 darwin/amd64

初始化專案

1,通常使用go mod init 專案目錄。如下:

go mod init go-project
cat go.mod
//
module go-project
go 1.13
require (
golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7 // indirect
)

2.在目錄go-project下有以下目錄及檔案
test目錄和main.go檔案,test目錄有test.go檔案,test.go檔案中有Hello方法。那麼在main.go檔案中使用test目錄下的test.go檔案中的Hello方法

main.go
package main 
import (
     "go-project/test/test"  
     "fmt"  
    )
func  main()  { 
        t : = test.Hello()
        fmt.Println(t)
     }

執行go run main.go.報錯

build command-line-arguments: cannot load go-project/test/test: malformed module path "go-project/test/test": missing dot in first path element

解決方法

把go.mod中 module go-project改為 test.com/go-project

cat go.mod
//
module  test.com/go-project
go 1.13
require (
golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7 // indirect
)

main.go檔案中引入如下

main.go
package main 
import (
     "test.com/go-project/test/test"  
     "fmt"  
    )
func  main()  { 
        t : = test.Hello()
        fmt.Println(t)
     }
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章