如何使用自定义包在Golang?(How to use custom packages in Gol

2019-07-20 11:02发布

我试图创建和围棋使用自定义包。 这也可能是一些非常明显的,但我不能找到这么多的信息。 基本上,我有在同一文件夹这两个文件:

mylib.go

package mylib

type SomeType struct {

}

main.go

package main

import (
    "mylib"
)

func main() {

}

当我尝试go run main.go ,我得到这个错误:

main.go:4:2: import "mylib": cannot find package

我试着运行go build mylib.go第一,但它似乎并没有被做任何事情(没有文件生成,没有错误消息)。 所以任何想法我怎么能做到这一点?

Answer 1:

首先,请务必阅读和了解“如何写Go代码”文件。

实际的答案取决于你的“定制包”的性质。

如果它的意图是普遍使用的,可以考虑采用所谓的“Github的代码布局” 。 基本上,你让你的库单独go get -table项目。

如果库是供内部使用,你可以是这样的:

  1. 将带有库文件的目录项目的目录下。
  2. 在项目的其余部分,是指使用其路径相对于包含项目工作区的根目录库。

展示:

src/
  myproject/
    mylib/
      mylib.go
      ...
    main.go

如今,在顶级main.go ,你可以import "myproject/mylib"和它的工作确定。



Answer 2:

对于这种文件夹结构:

main.go
mylib/
  mylib.go

最简单的方法就是用这样的:

import (
    "./mylib"
)


Answer 3:

对于托管在GitHub上的一个项目,这里就是人们通常做的:

github.com/
  laike9m/
    myproject/
      mylib/
        mylib.go
        ...
      main.go

mylib.go

package mylib

...

main.go

import "github.com/laike9m/myproject/mylib"

...


Answer 4:

另一种解决方案:
添加src/myproject至$ GOPATH。

然后import "mylib"会编。



Answer 5:

我是一个有经验的程序员,但是,很新进入围棋世界! 我承认,我遇到一些困难,了解去...试图组织在子文件夹我去文件时,我面临同样的问题。 我的方式做到了:

GO_Directory(分配到$ GOPATH一)

GO_Directory //the one assigned to $GOPATH
__MyProject
_____ main.go
_____ Entites
_____ Fiboo // in my case, fiboo is a database name
_________ Client.go // in my case, Client is a table name

在文件MYPROJECT \实体\ Fiboo \ Client.go

package Fiboo

type Client struct{
    ID int
    name string
}

在文件MyProject的\ main.go

package main

import(
    Fiboo "./Entity/Fiboo" 
)

var TableClient  Fiboo.Client

func main(){
    TableClient.ID = 1
    TableClient.name = 'Hugo'

    // do your things here
}

(我在Ubuntu 16.04运行围棋1.9)

请记住你们,我对围棋新手。 如果我在做什么是不好的做法,让我知道!



Answer 6:

词曲包

type Analizador struct {

}

func main() {

}

在主类包

import (

    "github.com/user/lexico
)


文章来源: How to use custom packages in Golang?