包导入,不能使用导入包中的struct

时间:2014-08-05 16:14:36

标签: go

这可能是一个noob错误,但我无法弄明白。

在main.go中,我正在导入一个包。

import(
    "models/users"
)

// ...

func main() {
    r.HandleFunc("/users/list", UsersModel.List())

包存储在src / models / users

用户包看起来像这样:

package users

import (
    "gopkg.in/mgo.v2"
)

// ...

/**
 * User Model
 */
type UsersModel struct {

}

// Add methods to the UsersModel type.
func (m *UsersModel) List() {
// ...

当我运行代码时,我收到以下错误。

  

src \ main.go:9:导入但未使用:“models / users”src \ main.go:20:   undefined:UsersModel

go代码似乎有效,好像我使其无效会引发错误。如何从用户包中导出UsersModel类型?

1 个答案:

答案 0 :(得分:6)

您需要在使用UsersModel时使用包名users作为前缀,如下所示:

um := users.UserModel{}

UsersModel.List()也是错误的:go没有"静态方法"或者"类方法"。