Package


In Go, the packages can be divided into 2 categories:

(1) main package: is used to generate the executable binary, and the main function is the entry point of the program. Take hello.go as an example:

package main

import "greet"

func main() {
    greet.Greet()
}

(2) This category can also include 2 types:

a) Library package: is used to generate the object files that can be reused by others. Take greet.go as an example:

package greet

import "fmt"

func Greet() {
    fmt.Println("Hello 中国!")
}

b) Some other packages for special purposes, such as testing.

Nearly every program needs Go standard ($GOROOT) or third-pary ($GOPATH) packages. To use them, you should use import statement:

import "fmt"
import "github.com/NanXiao/stack" 

Or:

import (
    "fmt"
    "github.com/NanXiao/stack"
)

In the above examples, the "fmt" and "github.com/NanXiao/stack" are called import path, which is used to find the relevant package.

You may also see the following cases:

import m "lib/math" // use m as the math package name
import . "lib/math" // Omit package name when using math package

If the go install command can't find the specified package, it will complain the error messages like this:

... : cannot find package "xxxx" in any of:
        /usr/local/go/src/xxxx (from $GOROOT)
        /root/gowork/src/xxxx (from $GOPATH)

To avoid library conflicts, you'd better make your own packages' path the only one in the world: E.g., your github repository destination:

 github.com/NanXiao/...

Conventionally, your package name should be same with the last item in import path; it is a good coding habit though not a must.

Reference:
The Go Programming Language.

results matching ""

    No results matching ""