Go语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率。
1). 从c语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指
针等等,也保留了和c语言一样的编译执行方式及弱化的指针。
2). 引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在。
3). 垃圾回收机制,内存自动回收,不需开发人员管理
4) . 天然并发
(1) 从语言层面支持并发,实现简单
(2) goroutine,轻量级线程,可实现大并发处理,高效利用多核。
(3)基于CPS并发模型(Communicating Sequential Processes )实现
5). 吸收了管道通信机制,形成Go语言特有的管道channel通过管道channel ,可以实现不同的goroute之间的相互通信。
6). 函数返回多个值
7). 新的创新:比如切片slice、延时执行defer等
开发工具
VSCode
下载地址:Download Visual Studio Code - Mac, Linux, Windows
Windows搭建Go开发环境搭建
1.安装和配置SDK
1).SDK的全称(Software Development Kit 软件开发工具包)
2).SDK是提供给开发人员使用的,其中包含了对应开发语言的工具包。
SDK下载地址:Go下载 - Go语言中文网 - Golang中文社区
3).解压
4).这个就是SDK
测试是否安装成功
在go/bin/ 目录下输入cmd后回车
配置环境变量
配置环境变量介绍
根据windows系统在查找可执行程序的原理,可以将Go所在路径定义到环境变量中,让系统帮我们去找运行执行的程序,这样在任何目录下都可以执行go指令。
配置那些环境变量
1.先打开环境变量配置的界面
此电脑,右键属性,后点击高级系统设置
2.配置环境变量
Path这个环境变量不需要在创建,因为系统本身就有,你后面增加即可。
增加Go的 bin : %GOROOT%bin
GOPATH: 就是你以后go项目存放的路径,即工作目录。GOPATH:是一个新建的环境变量。
出现图中表示配置成功
编写第一个go程序
目录结构可以这样
(1) go文件的后缀是.go
(2) package main
表示该hello.go文件所在的包是main。在go中,每个文件都必须归属于一个包。
(3) import "fmt“
表示:引入一个包,包名 fmt。引入该包后,就可以使用fmt包的函数,比如: fmt.Println
(4) func main( ){
func是一个关键字,表示一个函数。
main是函数名,是一个主函数,即我们程序的入口。
}
2.通过gobuild 命令对该go文件进行编译,生成exe文件.
在项目文件下进入cmd 命令
输入go build hello.go,会生成hello.exe文件
运行则输入hello.exe
注意:通过go run 命令可以直接运行 hello.go 程序[类似执行一个脚本文件的形式]
在该源文件目录下,通过go build 对hello.go 文件进行编译。可以指定生成的可执行文件名,在
windows下必须是.exe 后缀。
Golang执行流程分析
如果是对源码编译后,再执行,Go的执行流程如下图
如果我们是对源码直接执行go run源码,Go的执行流程如下图
两种执行流程的方式区别
1).如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有go开发环
境的机器上,仍然可以运行
2).如果我们是直接go run go源代码,那么如果要在另外一个机器上这么运行,也需要go
开发环境,否则无法执行。
3).在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件
变大了很多。
Go程序开发注意事项
1) Go源文件以"go" 为扩展名。.
2) Go应用程序的执行入口是main()方法。
3) Go语言严格区分大小写。
4) Go方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号),这
也体现出Golang的简洁性。
5) Go编译器是一行行进行编译的,因此我们一行就写-条语句,不能把多条语句写在同一
个,否则报错
6) go语言 定义的变量或者import的包如果没有使用到,代码不能编译通过。
7)大括号都是成对出现的,缺一不可。
Golang常用的转义字符
1) \t :一个制表位,实现对齐的功能.
2) \n :换行符
3) \\ : 一个\
4) \" :一个"
5) \r : 一个回车,从当前行的最前面开始输出,覆盖掉以前内容 fmt.Println("hello \r myfriend");
Golang开发常见问题和解决方法
找不到文件
解决方法: 源文件名不存在或者写错,或者当前路径错误
Go语言中的注释类型
Go支持C语言风格的产/* */块注释,也支持C+ +风格的//行注释。行往释更通用, 块注释主要
用于针对包的详细说明或者屏蔽大块的代码
1)行注释. //
2)块注释(多行往释) /* */
规范的代码风格
正确的注释和注释风格:
1) Go官方推荐使用行注释来注释整个方法和语句。
2) 带看Go源码
正确的缩进和空白
1)使用gofmt来进行格式化
2)运算符两边习惯性各加一一个空格。比如: 3 + 4 * 5.
代码风格
行长约定: 一行最长不超过80个字符,超过的请使用换行展示,尽量保持格式优雅。
API : application program inteface : 应用程序编程接口。就是我们Go的各个包的各个函数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)