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

This is probably a noob mistake but I cannot figure this out.

In main.go I am importing a package.

import(
    "models/users"
)

// ...

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

The package is stored in src/models/users

The users package looks like this:

package users

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

// ...

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

}

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

When I run the code I get the following error.

src\main.go:9: imported and not used: "models/users" src\main.go:20: undefined: UsersModel

The go code appears to be valid as if I invalidate it throws an error. How do I export the UsersModel type from the users package?

You need to prefix your use of UsersModel with the package name users, like so:

um := users.UserModel{}

UsersModel.List() is also wrong: go doesn't have "static methods" or "class methods".