首页 > 其他分享 >GO(1)开发环境

GO(1)开发环境

时间:2022-11-04 20:45:37浏览次数:72  
标签:GOPATH github src 环境 hello go 开发 GO 目录

前言

后边准备学习云安全以及区块链安全,先看一遍GO语言

开发环境

Go官网下载地址:https://golang.org/dl/

配置GOPATH

GOPATH是一个环境变量,用来表明你写的go项目的存放路径

GOPATH路径最好只设置一个,所有的项目代码都放到GOPATHsrc目录下。

image-20221104201929630

上面设置GO代码存放目录

同时在path里面添加go的安装目录和GOPATH目录

image-20221104202221370

image-20221104202500848

项目目录

在进行Go语言开发的时候,我们的代码总是会保存在$GOPATH/src目录下。在工程经过go buildgo installgo get等指令后,会将下载的第三方包源代码文件放在$GOPATH/src目录下, 产生的二进制可执行文件放在 $GOPATH/bin目录下,生成的中间缓存文件会被保存在 $GOPATH/pkg 下。

如果我们使用版本管理工具(Version Control SystemVCS。常用如Git)来管理我们的项目代码时,我们只需要添加$GOPATH/src目录的源代码即可。binpkg 目录的内容无需版本控制。

个人开发者

源代码都是存放在GOPATHsrc目录下,那我们可以按照下图来组织我们的代码。

image-20221104202603015

目前流行的项目结构

Go语言中也是通过包来组织代码文件,我们可以引用别人的包也可以发布自己的包,但是为了防止不同包的项目名冲突,我们通常使用顶级域名来作为包名的前缀,这样就不担心项目名冲突的问题了。

因为不是每个个人开发者都拥有自己的顶级域名,所以目前流行的方式是使用个人的github用户名来区分不同的包。

image-20221104202734522

举个例子:张三和李四都有一个名叫studygo的项目,那么这两个包的路径就会是:

import "github.com/zhangsan/studygo"

import "github.com/lisi/studygo"

以后我们从github上下载别人包的时候,如:

go get github.com/jmoiron/sqlx

那么,这个包会下载到我们本地GOPATH目录下的src/github.com/jmoiron/sqlx

企业开发者

image-20221104202818459

第一个go程序

(1)在之前的GOPATHsrc目录下创建一个hello目录,在hello目录中创建一个main.go文件

package main  // 声明 main 包,表明当前是一个可执行程序

import "fmt"  // 导入内置 fmt 

func main(){  // main函数,是程序执行的入口
    fmt.Println("Hello World!")  // 在终端打印 Hello World!
}

(2)在hello目录下执行:go build

go编译器会去 GOPATHsrc目录下查找你要编译的hello项目

编译得到的可执行文件会保存在执行编译命令的当前目录下,如果是windows平台会在当前目录下找到hello.exe可执行文件。

(4)在终端直接执行该hello.exe文件:

D:\project\GOproject\src\hello>hello.exe
Hello World!

我们还可以使用-o参数来指定编译后可执行文件的名字。

go build -o heiheihei.exe

标签:GOPATH,github,src,环境,hello,go,开发,GO,目录
From: https://www.cnblogs.com/gk0d/p/16859054.html

相关文章

  • 实际开发中有⽤过环境变量吗?
    有⽤过的,我在公司⾥⽤过的场景主要是为了和后台对接⼝的时候切换根域名baseURL时⽤,因为公司有⼏个不同的环境嘛,⼀个环境对应前端⼀个环境变量⽂件,同样⼀个环境变量⽐如说V......
  • 开发向未来!2022 云开发技术峰会报名中
    2022云开发技术峰会将于2022年11月13日在深圳举办。本次峰会报名通道现已开启,欢迎各位开发者进入微信学堂小程序报名参与!*注意事项:大会仅限报名审核通过者实名入场,参......
  • 华为发布鸿蒙开发套件 全面加速推进鸿蒙生态
    2022年11月4日,华为开发者大会2022(Together)在东莞松山湖溪村揭开帷幕,带来鸿蒙生态发展新格局。在主题演讲中,华为终端BG软件部总裁龚体围绕声明式开发体系,提出鸿蒙生态应用开......
  • 全新升级的鸿蒙开发套件,你想知道的都在这里
     华为开发者大会2022(Together)今天盛大开幕主题演讲精彩纷呈技术分享干货满满华为围绕声明式开发体系发布了全新升级的鸿蒙开发套件只需3分钟带你了解相关亮......
  • 如何在proto3中用上golang对应的interface{}类型
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯首先,我希望所有golang中用于http请求响应的结构,都使用proto......
  • 全新升级的鸿蒙开发套件,你想知道的都在这里
    华为开发者大会2022(Together)今天盛大开幕主题演讲精彩纷呈技术分享干货满满华为围绕声明式开发体系发布了全新升级的鸿蒙开发套件只需3分钟带你了解相关亮点HarmonyOS一......
  • 《妲妹不要》——开发日志
    2022/11/04加上了字幕,调整了一下音效,终于可以导出了~纳西妲,冲!2022/11/03终于抽到纳西妲啦!超级可爱,非常满意~视频的话,还需要给添加一些音效和bgm就可以食用了。音效主......
  • gorm
    特性全功能ORM关联(HasOne,HasMany,BelongsTo,ManyToMany,多态,单表继承)Create,Save,Update,Delete,Find中钩子方法支持Preload、Joins的预加载事务,嵌套事务,SaveP......
  • 大文件上传(秒传/断点续传)_使用Vue-Simple-Uploader插件 --Vue/Django完整实现
    Vue-Simple-Uploader插件-Github地址:​​https://github.com/simple-uploader/vue-uploader/blob/master/README_zh-CN.md​​​simple-uploader-详细参数-Github地......
  • Vue项目或Django项目在Linux系统持续运行 - XShell
    Vue项目$nohupnpmrunserve&exitDjango项目$nohuppythonmanage.pyrunserver0.0.0.0:8000>nohup.out&exit稍微解释一下命令:nohup:不挂断的运行命令>nohup.out:......