我正在尝试学习Golang,但是我有一个初学者问题。

我创建了两个文件“helloworld.go”和“greetings.go”。我正在尝试使用以下方式将Greetings.go导入helloworld.go

import (
    "test/greetings/greetings"
)

但是我收到以下错误:

在以下任何位置均找不到软件包“test / greetings / greetings”:
C:\ Go \ src \ test \ greetings \ greetings(来自$ GOROOT)
C:\ work \ go-ws \ src \ test \ greetings \ greetings(来自$ GOPATH)退出
状态1

我正在使用Windows OS,我的GOPATH和GOROOT值如下:
"GOPATH": "C:/work/go-ws"
"GOROOT": "C:/Go"

我的项目结构如下所示:
C:
--work
   -- go-ws
      -- anlytics
          -- src
              -- test
                  -- greetings
                       **greetings.go**
                  **helloworld.go**
          -- pkg
          -- bin

我要去哪里错了?

最佳答案

要使用greetings.go中的“Salutation”结构,我必须将greet包附加到变量中。而不是“Salutation”,而是与greet.Salutation一起使用。

我的greetigs.go文件

package greet

import "fmt"

type Salutation struct {
    Name     string
    Greeting string
}
...

因此,要在我的helloworld.go中使用它,请按如下所示向该变量追加问候
package main

import (
    "test/greetings"
)

func main() {

    var s = greet.Salutation{"Bob", "Hello"}
}

而且有效...

10-04 22:28