Go开发之对工程的安排处理

Go开发之对工程的安排处理
在学习开发的过程中,当然是怎么简单明了的学会使用这个技术是最主要的,但是在最终还是要用它来进行实际的工程开发,而实际的工程开发就不可能把所有的代码都写在一个文件里或者一个包里,那应该怎么处理呢?下面就用一个入门的例子来抛砖引玉。这里面其实和GOPATH还是有相当的关系的。
先看一下工程的目录:
 
这个没有直接建立在GOPATH目录下,而是按照开发习惯专门放置在了一个go_project的工程目录下。上图是整个工程的目录,开发是在WIN10+GO1.74+LITEIDE环境下。
Main.go:
package main


import (
    "fmt"
    "message/mmsg"
    "msg"
)


func main() {
    str := mmsg.GetMMsg()
    t := msg.Getnum(10)


    fmt.Println(t)
    fmt.Println(str)
    fmt.Println("Hello World!")
}
Mymmsg.go:
// mymmsg
package mmsg


import (
    "fmt"
)


func GetMMsg() string {
    fmt.Println("Hello---- World!")
    return "hello"
}
Mymsg.go:
// mymsg
package msg


import (
    "fmt"
)


func Getnum(num int) int {
    fmt.Println("Hello++++ World!")
    return num + 1
}
这是三个文件的内容,因为是演示工程安排,所以内容非常简单。
然后再在环境变量GOPATH里增加:
 
也就是上图中的第二行。这里需要注意的是,不要和低版本的WINDOWS一样,用分号分开写到一行里。要一行行的写,在安装JDK时就遇到了这个问题,现象是前面的JAVA命令可以用,但是后面的JAVAC命令不可用,拆开就可以了。
另外一个还需要注意的是,导出的函数和变量开头一定要大写啊,GO没有标识公有和私有的关键字,在这上面耽误了有小半个小时,总是报“golang cannot refer to unexported name  xxx.xxx”,不过通过这个又反应出来,VS还是宇宙第一好用的编译器啊。
找了些资料总结一下:
1、 go的package类似于C#的分离文件编译,可以多个文件,但是使用一个包,这样用起来就方便了 。
这样的好处就是变量和函数的引用可以直接操作,不过反过来也容易产生名字冲突啊,这个都需要注意,凡事有利就有弊。
2、go的package的名称尽量和目录保持一致,当然,不一致也不关系,让别人去糊涂呗。其实这里更类似于JAVA的包路径的引用。
3、一个子目录一个包,这个没商量,倒也方便使用。。
4、go的package是以绝对路径GOPATH来寻址的,也就是说都是相对于src目录的,所以如果你没有直接在GOPATH路径下建立工程,最好自己建立src,bin,pkg等目录,这样方便,今天就遇到了这个问题,没有建立,在向环境变量里加了工程路径后,它自动去找src/xxx,也是醉了。
费点时间记下来,省得以后又忘记。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值