官方下载

通过Go语言官方下载地址 下载对应的安装文件

安装完成后会在安装目录下生成如下内容

Go语言开发的安装目录说明

目录名 解释
api 每个版本的API变更差异
bin go源码包编译出的编译器(go)、文档工具(godoc)、格式化工具(gofmt)
doc go文档
lib 引用的一些库文件
misc 杂项用途的文件,例如Android平台的编译、git的提交钩子等
pkg Windows平台编译好的中间文件
src 标准库源码
test 测试用例

环境配置

设置GOROOT

GOROOT是Go语言的安装路径

设置GOPATH

GOPATH是Go语言编译时参考的工作路径,类似于Java仲的Workspace的概念,选择一个空目录作为GOPATH即可

HelloWorld

新建Directory,在Directory下新建main.go文件,在文件中写入如下代码

package main
import "fmt"
func main() {fmt.Println("Hello World")
}

右键 Run 'go build main.go'


也可以在命令行使用命令执行

为什么要GO

  • 比Java代码简洁、开发效率更高、性能更好
  • 比Python性能高很多,尤其并发处理优势
  • Go语言不会取代Java,也不会取代Python,但更多和服务器打交道的开发会选择GO语言,Docker、Kubernetes就是Go语言开发的

GO语言的执行过程

Go语言是编译型语言,当我们直接执行run命令执行代码的时候,实际上是先编译成二进制机器指令,然后连接相关资源运行,最终输出结果,也可以把编译和执行分成两步,先使用go build指令进行编译,然后找到生成的二进制程序,直接执行

PS D:\Programs\Go\GolandProjects\book\Training> go build .\main.go
PS D:\Programs\Go\GolandProjects\book\Training> .\main.exe
Hello World
PS D:\Programs\Go\GolandProjects\book\Training>

另外Go语言是原生支持Unicode的,所以更方便处理汉字及其他各种语言文字

package main
import "fmt"
func main() {fmt.Println("我醉欲眠卿且去")
}
PS D:\Programs\Go\GolandProjects\book\Training> go build .\main.go
PS D:\Programs\Go\GolandProjects\book\Training> .\main.exe
我醉欲眠卿且去
PS D:\Programs\Go\GolandProjects\book\Training>

使用Import导入的包必须在本程序中用到,如果导入了却没有用到,则编译无法通过,同样声明变量也必须用到,否则也无法通过编译,这是Go的优良特性之一

交叉编译

Mac 下编译, Linux 或者 Windows 下去执行

# linux 下去执行
CGO_ENABLED=0  GOOS=linux  GOARCH=amd64  go build main.go
# Windows 下去执行
CGO_ENABLED=0 GOOS=windows  GOARCH=amd64  go  build  main.go

Linux 下编译 , Mac 或者 Windows 下去执行

# Mac  下去执行
CGO_ENABLED=0 GOOS=darwin  GOARCH=amd64  go build main.go
# Windows 下执行
CGO_ENABLED=0 GOOS=windows  GOARCH=amd64  go build main.go

Windows 下编译 , Mac 或 Linux 下去执行

需要写一个批处理程序,在里面去设置,因为windows 下的 terminal 不支持shell , 这跟 Mac 和 Linux下的有点不同

# Mac 下执行
SET  CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
# Linux 去执行
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go

语句解析

Go语言实际上是可以用分号的,可以把多行代码写在一行,但并不建议如此,那么既然Go语言没有分号,又如何做语句解析的?在这一点上有些类似于Python,但又不同于Python,Go在编译的时候会把换行符解析为分号,因此在写Go代码的时候需要注意换行,即不要把函数的大括号单独作为一行,那样编译是无法通过的,此外还要注意Go语言的代码格式,不过IDE会自动检查纠正

Go语言基础之开发环境相关推荐

  1. 我的全栈之路-C语言基础之C语言概述与开发环境搭建

    我的全栈之路-C语言基础之C语言概述与开发环境搭建 我的全栈之路 1.1 信息技术发展趋势 1.2 浅谈计算机系统架构 1.2.1 计算机系统架构概述 1.2.2 计算机硬件系统 1.2.2 计算机软 ...

  2. Python学习笔记 - Python语言概述和开发环境

    一.Python简介 1.1  Python语言简史 Python由荷兰人吉多·范罗苏姆(Guido van Rossum)于1989年圣诞节期间,在阿姆斯特丹,为了打发圣诞节的无聊时间,决心开发一门 ...

  3. Java基础-配置开发环境-安装JDK

    Java基础-配置开发环境-安装JDK 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.计算机基础知识 1>.计算机的组成 计算机有硬件与软件组成. 2>.硬件: 硬 ...

  4. RStudio v1.2.1335 发布,R 语言的集成开发环境

    开发四年只会写业务代码,分布式高并发都不会还做程序员? >>>   RStudio 是 R 语言的集成开发环境,分为面向桌面用户 IDE 和 Linux R 服务器版编辑器两种编辑器 ...

  5. C语言核心技术-C语言概述与开发环境搭建

    C语言概述 C语言发展简史 起源 1972年,贝尔实验室的Dennis Ritchie和Ken Thompson在开发Unix操作系统时设计了C语言,该操作系统的90%以上的代码都是由C语言实现,后期 ...

  6. 一个c语言程序的开发环境,C语言入门(2)——安装VS2013开发环境并编写第一个C语言程序...

    在C语言入门系列中,我们使用Visual studio 2013 Professional作为开发工具.本篇详细介绍如何安装Visualstudio 2013 Professional并写出我们第一个 ...

  7. Unity开发(一).Unity基础以及开发环境搭建

    1. Unity基础知识概括 1)初识 Unity 由 Unity Technologies开发,创建三维视频游戏,建筑可视化及实时三维动画等互动内容的多平台的综合性开发工具. 编辑器运行平台:Win ...

  8. java语言适合编写什么_01--Java语言概述与开发环境 最适合入门的Java教程

    Java程序运行机制 编译型语言: 使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码一次性"翻译"成可被该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台 ...

  9. c语言制表符_随时随地学习C语言之1—开发环境搭建

    上一篇文章<C语言常用的集成开发环境有哪些?你用哪个?>介绍了C语言常用的集成开发环境,本文正式开始<随时随地学习C语言系列>连载文章.在这里面,我会把自己学习.使用C语言时的 ...

最新文章

  1. 将新主要功能部署到生产时要考虑的5件事情
  2. 忘掉什么鬼并发,先听完这个故事!
  3. iOS 从实际出发理解多线程
  4. .NET Core 3.0稳定版发布
  5. jdk1.8 ::构造函数_在JDK 8中可通过反射获得构造函数/方法参数元数据
  6. DateFormat(炸窝)
  7. 阿里云李克:边缘云技术发展与实践
  8. SQL SERVER 2008 恢复远程备份文件
  9. 两轮小车相关记录(重点)
  10. HDU1256 画8【打印图案】
  11. java解析XML【转载】
  12. Android上使用MP3格式录制声音
  13. SIM800A上传数据到Onenet平台命令
  14. 系统性学习计算机(一)
  15. java代码处理URL转码
  16. Nginx学习笔记(反向代理搭建集群)
  17. 计算机以及dos窗口常用快捷键
  18. 台式机切换有线/无线网脚本
  19. Redis基本数据类型和使用场景
  20. 清华山维EPS三维测图无法进行OSGB格式转换问题(实测)

热门文章

  1. ERR_FAILED 200 解决方案
  2. 【NOI2008】 志愿者招募
  3. php制作白色背景图加字,PHP实现水印类,支持添加图片、文字、填充颜色区域
  4. 关于java导出Excel报错65535的解决方案
  5. vulhub靶场-weblogic漏洞复现
  6. P8294 [省选联考 2022] 最大权独立集问题
  7. canvas 在其他画好的上面继续画_canvas上多次画图片,会不会造成资源浪费?
  8. C# 实现SHA256加密
  9. 求生之路2 DIY-自制皮肤与导入
  10. 2014校园招聘笔试题