我试图创建和围棋使用自定义包。 这也可能是一些非常明显的,但我不能找到这么多的信息。 基本上,我有在同一文件夹这两个文件:
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
第一,但它似乎并没有被做任何事情(没有文件生成,没有错误消息)。 所以任何想法我怎么能做到这一点?
首先,请务必阅读和了解“如何写Go代码”文件。
实际的答案取决于你的“定制包”的性质。
如果它的意图是普遍使用的,可以考虑采用所谓的“Github的代码布局” 。 基本上,你让你的库单独go get
-table项目。
如果库是供内部使用,你可以是这样的:
- 将带有库文件的目录项目的目录下。
- 在项目的其余部分,是指使用其路径相对于包含项目工作区的根目录库。
展示:
src/
myproject/
mylib/
mylib.go
...
main.go
如今,在顶级main.go
,你可以import "myproject/mylib"
和它的工作确定。
对于托管在GitHub上的一个项目,这里就是人们通常做的:
github.com/
laike9m/
myproject/
mylib/
mylib.go
...
main.go
mylib.go
package mylib
...
main.go
import "github.com/laike9m/myproject/mylib"
...
另一种解决方案:
添加src/myproject
至$ GOPATH。
然后import "mylib"
会编。
我是一个有经验的程序员,但是,很新进入围棋世界! 我承认,我遇到一些困难,了解去...试图组织在子文件夹我去文件时,我面临同样的问题。 我的方式做到了:
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)
请记住你们,我对围棋新手。 如果我在做什么是不好的做法,让我知道!
词曲包
type Analizador struct {
}
func main() {
}
在主类包
import (
"github.com/user/lexico
)