环境安装
Go 语言支持以下系统:
-
- Linux
- FreeBSD
- Mac OS X(也称为 Darwin)
- Window
安装包下载地址为:https://golang.org/dl/。
Windows下直接下载对应的版本安装就可以了。
Hello World
新建hello.go,输入以下代码:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
命令行运行 go run hello.go
注意:package指包名,和所属文件夹无关,入口程序的package必须是main。import引入包。func 定义函数,入口程序的函数名必须是main。
IDE
LiteIDE是一款开源、跨平台的轻量级Go语言集成开发环境(IDE)。项目地址:https://github.com/visualfc/liteide
JetBrains开发的JetBrains GoLand,https://www.jetbrains.com/go/download/
go语言结构
Go 语言的基础组成有以下几个部分:
-
- 包声明
- 引入包
- 函数
- 变量
- 语句 & 表达式
- 注释
接下来让我们来看下简单的代码,该代码输出了"Hello World!":
package main import "fmt" func main() { /* 这是我的第一个简单的程序 */ fmt.Println("Hello, World!") }
1、第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。
2、下一行 import "fmt" 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。
3、下一行 func main() 是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。
4、下一行 /*...*/ 是注释,在程序执行时将被忽略。单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。
5、下一行 fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 。
go语言基础语法
行分隔符
在 Go 程序中,一行代表一个语句结束。分号(;)是可选的,如果打算将多个语句写在同一行,它们则必须使用 ; 分割,但在实际开发中不要使用这种做法。
注释
注释不会被编译,每一个包应该有相关注释。go的注释和c,java一样,有单行注释//,和多行注释 /* ... */
// 单行注释
/*
我是多行注释
*/
标识符
标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(A~Z和a~z)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。
以下是有效的标识符:
mahesh kumar abc move_name a_123
myname50 _temp j a23b9 retVal
以下是无效的标识符:
-
- 1ab(以数字开头)
- case(Go 语言的关键字)
- a+b(运算符是不允许的)
下面列举了 Go 代码中会使用到的 25 个关键字或保留字:
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 |
除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符:
append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 |
copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 |
int32 | int64 | iota | len | make | new | nil | panic | uint64 |
println | real | recover | string | true | uint | uint8 | uintptr |
程序中可能会使用到这些分隔符:括号 (),中括号 [] 和大括号 {}。程序一般由关键字、常量、变量、运算符、类型和函数组成。
程序中可能会使用到这些标点符号:点号. 逗号, 分号; 冒号: 三个点号…
Go 语言数据类型
在 Go 编程语言中,数据类型用于声明函数和变量。
1、布尔型
布尔型的值只可以是常量 true 或者 false。
2、数字类型
整型 int 和浮点型 float,Go 语言支持整型和浮点型数字,并且原生支持复数,其中位的运算采用补码。
整型分有符号和无符号:
uint8,uint16,uint32,uint64,int8,int16,int32,int64分别表示无符号和有符号的8位,16位,32位,64位整型
浮点型:
float32 32位浮点数,float64位浮点数。complex64 32位实数和虚数,complex128 64位实数和虚数
其他数字类型:
byte 类似 uint8
rune 类似 int32
uint 32 或 64 位
int 与 uint 一样大小
uintptr 无符号整型,用于存放一个指针
3、字符串类型:
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本。
4、派生类型:
包括:
(a) 指针类型(Pointer)
(b) 数组类型
(c) 结构化类型(struct)
(d) Channel 类型
(e) 函数类型
(f) 切片类型
(g) 接口类型(interface)
(h) Map 类型