一.Go语言介绍
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
二.环境搭建
到go的官网可以下载,下载链接
点击Download即可下载,下载完之后,选择安装路径,默认会自动配置环境变量,如果没有配置,把path/go/bin添加到环境变量即可
测试是否安装成功,输入go version
在VsCode里编写go代码
在VsCode拓展里找到go的扩展,并安装
然后就可以编写go代码了
下面演示一个hello world代码hello.go
package main import ("fmt") func main() { fmt.Println("Hello, World!") }
注意,main函数的大括号一定要和main函数在一行,不然会报错
运行测试一下,在终端输入go run hello.go
二.Go语言的基本结构
Go 语言的基础组成有以下几个部分:
- 包声明
- 引入包
- 函数
- 变量
- 语句 & 表达式
- 注释
以我们写的Hello world为例
//包声明 package main //引入包 import "fmt"//主函数 func main() { /*这是一个简单的程序 */ //语句 fmt.Println("Hello, World!") fmt.Println("The Second") }
第一行的package main定义了包名,每个文件的除注释之外第一行代码都要加上包名,指明这个文件属于哪个包,例如package main,package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包
第二行的import "fmt"表示引入了fmt包,因为在程序中使用了fmt的Println函数
下面是程序的主函数,每一个可执行文件都应该有一个主函数,在没有init函数的情况下,main函数是最早被执行的
下面两行注释/**/可以表示多行注释,//可以表示单行注释
fmt.Println()表示调用了fmt包中的Println函数,注意这里的输出函数首字母是大写的
当一个标识符以大写开头,,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )
执行go程序有两种办法,一种是使用go run命令直接运行.go文件
另一种是先使用go build生成可执行文件,然后在运行可执行文件
三.基本语法
标识符
标识符用来给变量、结构体、函数等进行命名,命名的规则和C语言类似,由字符数字和下划线组成,不能以数字开头、
例如:add result _begin a_123
行分割符
go语言每条语句后是没有分号的,一行就代表一条单独的语句
如果要把两条语句写在同一行,则必须要分号来进行分隔,例如
package main import "fmt" func main() { fmt.Println("Hello, World!");fmt.Println("The Second") }
字符串连接
go语言中的字符串可以直接用+进行连接
比如
package main import "fmt" func main() { fmt.Println("Google" + "Chrome") }
格式化字符串
go语言使用fmt.Sprintf 或 fmt.Printf 格式化字符串并赋值给新串:
- Sprintf 根据格式化参数生成格式化的字符串并返回该字符串。
- Printf 根据格式化参数生成格式化的字符串并写入标准输出。
例如
package main import "fmt" func main() {var code = 123 var data = "2023-02-27" var url = "Code = %d & Data = %s" var target_url = fmt.Sprintf(url,code,data) fmt.Println(target_url) }
关键字
以下是go语言中的关键字
break | default | func | interface | select |
case | defer | go | map | struct |
chan | else | goto | package | switch |
const | fallthrough | if | range | type |
continue | for | import | return | var |