go全名是golang,简称go语言,它是Google开发的一种静态强类型、编译型语言;其主要目标是“兼具Python等动态语言的开发速度和C/C++等编译型语言的性能与安全性”。Go语言的推出,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计良好、执行性能好”等优势。
Go 语言特色
简洁、快速、安全
并行、有趣、开源
内存管理、数组安全、编译迅速
Go语言的特点
Go语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发速度和易维护性,有人形容Go语言: Go = C + Python , 说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发。
Go语言有以下 特性:
1. 自动垃圾回收
C/C++最头疼的就是指针问题,一不小心就野指针了或者又越界了。在Go语言里再也不用担心,也不用考虑delete或 者free,系统自动会回收。
2. 函数可以返回多个值
这个很神奇,大多数语言只能返回一个值,Go语言可以返回多个值。这个功能使得开发者再不用绞尽脑汁的想到底 怎么返回值的设计,也不用为了传值专门定义一个结构体。
3. 并发编程
Go语言天然并发,只需要关键字“go”就可以让函数并发执行,使得并发编程变得更为简单,这也是Go语言最大的优 势。
4. 没有依赖地狱
5. 编译一次,随处拷贝,部署极为方便
Go 语言用途
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
Go 语言环境安装
Go 语言支持以下系统:Linux、FreeBSD、Mac OS X(也称为 Darwin)、Windows 。
官网地址:https://golang.org/dl/ 。
国内地址:https://studygolang.com/dl
进入后根据自己的系统下载对应的安装包。不翻墙可以直接用第二个地址,国内可直接访问。
windows直接一路下一步即可,推荐使用默认的安装路径。
安装完成后,命令行内输入 go env回车。
C:\Users\2023020701>go env
代表已经安装成功。
开发过程中,下载第三方,可以设置使用代理
#Windows: go env -w GOPROXY= #Linux: export GOPROXY=https://goproxy.cn
开发第一个go程序
1、任意目录位置创建新项目文件
这里我创建了project项目
2、进入项目目录 执行 go mod init project
init后面跟随的是项目的名称,一般和项目文件名保持一致。
生成 go.mod 文件,此命令会在当前目录中初始化和创建一个新的go.mod文件
go.mod里面存放了各种包文件的依赖关系和版本关系。
如果程序有引入第三方的包还会生成一个go.sum文件,里面主要记录了三方包的校验信息防止恶意篡改。
C:\Users\2023020701\GolandProjects\project>go mod init project go: creating new go.mod: module project
3、新建项目入口文件 main.go
入口文件不一定非要叫main.go 可以是index.go、run.go等等。但是里面的包名必须是main。
在项目所在目录执行 go run main.go
PS C:\Users\2023020701\GolandProjects\project> go run main.go
释义:
package main
包名,和php的明明空间namespace类似。一般相同的目录下都是同一个包名
入口文件包名必须是main
import "fmt"
程序引入的外部包名。类似php的 use
多个包引入可以写
Import(
)
func main() {
程序的入口函数,入口函数必须是main函数,
main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)
注意:
1、Go中函数的左括号必须跟在函数后面,不能自己单独一行
2、main函数不能有参数
第一个项目已经开发完成,如何编译我们的项目呢
通过go env可以看到我们环境设置的系统类型
默认是windows系统。如果要编译 直接执行:go build
PS C:\Users\2023020701\GolandProjects\project> go build
项目目录下就会生成一个可执行文件,名称是项目名称
这里注意:生成可执行程序的名称是项目名不是项目目录名称。如果初始化项目的时候名字协程project-1
go mod init project-1
那么生成的可执行程序就是 project-1.exe
如何生成指定的可执行程序名称呢?
go build -o kaihei.exe main.go ,这样就可以生成指定名的可执行程序
PS C:\Users\2023020701\GolandProjects\project> go build -o hello.exe main.go
如何编译linux或者其他平台的可执行程序?
set goos=linux //将系统设置为目标系统
就可以编译出对应平台可执行的程序。
常用命令总结:
go mod init 项目名 初始化项目 go mod download 下载 go.mod 文件中指明的所有依赖 后面跟path@version go mod tidy 整理现有的依赖,使用此命令来下载缺少的模块,并删除已经不用的模块 go mod vendor 导出项目所有的依赖到vendor目录,会在项目根目录生成vendor文件,里面存放项目所有的外部依赖 go run go文件.go 编译并运行程序,不产生编译后的可执行程序 go get 包地址 从网络下载需要的第三方包 go build 编译源码 go install 用于编译并安装指定的代码包 并把可执行程序放入bin目录 go test 执行测试用例
本文为崔凯原创文章,转载无需和我联系,但请注明来自冷暖自知一抹茶ckhttp://www.cksite.cn