Go笔记之一:工程项目结构的注意事项

Go笔记之一:工程项目结构的注意事项


对 Go 项目目录的理解 (Windows平台为例)

刚安装完的 Go 需要设定环境变量,最关键的环境变量有三个,GOROOT、GOPATH和GOBIN。GOROOT应该设定为 GO 在当前环境下的安装根目录,通常因为 windows 平台都是由安装工具安装完成,因此 windows 平台一般不需要设置。GOPATH 理解为是开发者的“工作区”,即表示进行开发编译 Go 程序的工作区,因此 GOPATH 允许设定多值。而 GOBIN 在 GOPATH 被设定为多值时发挥作用,即用于存放由 go install 命令产生的可执行文件。

用一个项目具体举例

项目取名 calcproj,包含一个可执行程序 calc.exe和一个独立库,项目结构如下

> calcproj
> |--calc.go
> |--lib
> |--less.go

less.go 实现了自定义类型:Integer,并提供了一个方法 Less( b Integer ),该方法实现返回当前值是否小于参数值的结果

package lib

type Integer int

func (a Integer) Less(b Integer) bool {
return a < b
}

calc.go 是入口 main,调用 Less 方法并打印出结果,为了方便,main函数中的赋值被固定

package main

import(
"fmt"
"lib"
)

func main(){

var a lib.Integer = 3
fmt.Println(a, a.Less(2));
}

进入 src 目录运行 go build calc.gogo build,在src目录下获得可执行文件calc.exe,使用命令行工具运行,得到结果

C:\cinlapgo\calcproj\src>calc.exe
3 false

由书+实践+热心网友得到的经验总结

感谢

特别感谢Go语言技术交流群的 @【副总】西安-n1ce和@【总裁】重庆-im帥

参考资料

  • 参考书籍:《Go并发编程实战》
  • 参考书籍:《Go语言编程》
posted @   试试手气  阅读(230)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示