一:安装环境
1.下载地址:https://golang.google.cn/dl/,这里提供了不同平台的go版本,根据自己的平台选择下载。
2.安装完成后,把C:\go\bin目录添加到环境变量,这里就可以使用go了,在命令行输入 go version查看版本,输出结果如下所示。
3.强制开启GO111MODULE
go env -w GO111MODULE=on
使用中国代理
go env -w GOPROXY=https://goproxy.cn,direct
GO常用命令
使用示例
go build main.go
...
build: 编译包和依赖
clean: 移除对象文件
doc: 显示包或者符号的文档
env: 打印go的环境信息
bug: 启动错误报告
fix: 运行go tool fix
fmt: 运行gofmt进行格式化
get 下载并安装依赖包
golang标识符、关键字、命名规则
标识符
标识符的英文是 identifier ,通俗的讲,就是给变量、常量、函数、方法、结构体、数组、切片、接口起名字。
标识符的组成
1.标识符由数字、字母和下划线(_)组成。123 abc
2.只能以字母和下划线(-)开头。abc123_sysVar 123abc
3.标识符区分大小写。name Name NAME
举例说明标识符的命名
正确的命名
package main
import "fmt"
func main() (
var name string
var age int
var _sys int
golang变量
变量是计算机语言中能储存计算结果或能表示值的抽象概念不同的变量保存的数据类型可能会不一样。
声明变量
Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。 并且Go语言的变量声明后必须使用。声明变量的语法
var identifier type
var:声明变量关键字
identifier:变量名称
type :变量类型
例如
package main
import "fmt"
func main() {
var name string
var age int
var ok bool
}
批量声明
使用一个 var 关键字,把一些变量写在一个括号()里
package main
func main() {
var (
name string
age int
ok bool
)
}
变量的初始化
Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值,例如:整型和浮点型变量的默认值为0。字符串变量的默认值为空字符串“"。布尔型变量默认为 false。切片、函数、指针变量的默认为 nil。
变量初始化语法
var 变量名 类型 = 表达式
例如
package main
func main() {
var name string =“老郭"
var site string ="www.baidu.com"
var age int = 30
}
类型推导
我们在声明变量时,可以根据初始化值进行类型推导,从而省略类型。
package main
func main() {
var name =“老郭”
var site = "www.baidu.com"
var age = 30
}
初始化多个变量
可以一次初始化多个变量,中间用逗号分隔
package main
func main() {
var name,site,age ="老郭","www.baidu.com",381
}
短变量声明
只能在函数内部,可以使用 := 运算符对变量进行声明和初始化。
package main
func main() {
name :=“老郭"
site := “www.baidu.com"
age := 20
}
匿名变量
如果我们接收到多个变量,有一些变量使用不到,可以使用下划线_表示变量名称,这种变量叫做匿名变量。例如:
package main
import "fmt"
func getNameAndAge() (string,int) {
return"老郭",30
}
func main{
name,_ := getNameAndAge()//_就是一个匿名变量 无实际运用价值也不占用内存
fmt.Printf("name: v\n”,name)
fmt.Printf("age: v\n",age)//无法输出
}
变量类型转换
变量类型转换必须是底层相同的结构类型的变量可以转换
例如 浮点转整形可以 但是 字符串转整形就不可以
package main
import "fmt"
func main() {
var a = 1;
var b = 2.2
//开始转换
a = int(b);
fmt.printl(a)//输出2
}
GO数据类型
- 基础类型:整数、浮点数、复数、布尔值、字符串、常量
- 聚合类型:数组、结构体struct
- 引用类型:指针、切片slice、映射map、函数、通道
- 接口类型:接口