基础

golang官方网站

golang官网下载Golang

go命令

安装好go以后,在命令行中输入go help,查看go语言支持的命令

  • bug 上报bug
  • build 编译包和依赖
  • clean 移除对象文件和缓存文件
  • doc 显示包或者符号的文档
  • env 输出 go env 信息
  • fix 更新包以使用新版 API
  • fmt 格式化源码
  • generate 通过处理源文件生成go文件
  • get 添加依赖到当前模块并安装之
  • install 编译并安装包和依赖
  • list 列出包和模块
  • mod 模块管理
  • run 编译并运行Go程序
  • test 测试包
  • tool 运行指定的go工具
  • version 输出go语言的版本
  • vet 上报包里边可能的错误

此外,你还可以通过使用go help <topic>来查看具体命令的信息。

1 变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 声明变量
var name string
var age int

// 声明过的变量如果不赋值,就是类型零值

// 声明变量类型并赋值
var name string = "张三"
var age int = 18

// 变量简写
var name = "李四"
var age = 18

// 省略var
name := "张三"
age := 18

1.1 变量名规则

  • 变量名由字母、数字、下划线组成,且首字符不能是数字
  • 不能是go内置的25个关键字
  • 变量只能声明1次

1.2 全局变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main
import "fmt"

// 声明全局变量
var name string = "张三"
// 或者
var name = "张三"
// 不能省略var
// name := "张三"

func main(){
fmt.Println(name)
name = "Jack Zhang"
fmt.Println(name)
}

1.3 局部变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package main
import "fmt"

func main(){
// 声明局部变量,在当前函数可用
var name string = "张三"
fmt.Println(name)

if true {
// 声明局部变量, 再当前if中可用
var age = 18
fmt.Println(age)
}

// 下面的语句就会报错,因为age 再if括号的作用域中
// fmt.Println(age)
}

1.4 注意事项

  • 变量必须先定义才能使用
  • go语言是静态类型语言,要求变量
  • 变量名不能冲突(指在同一个作用域)
  • 简短定义方式,左边的变量名至少一个是新的
  • 简短定义方式,不能定义全局变量
  • 变量的零值,也叫默认值
  • 变量定义过就要使用,否则无法编译通过

2 变量类型

2.1 字符串

1
2
3
4
// 有个人他的名字叫张三
var name string = "张三"
// 张三的女朋友
var girlFriendName = "翠花"

关键字

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

2.2

2.3

2.4

3. 常量

3.1 常量的声明

1
2
3
4
const identifier [type] = value

显示类型定义 const b string = "abc"
隐式类型定义 const c = "abc"