### 声明变量的方法
> **var 变量名 类型 = 表达式**
> **var 变量 = 表达式**
> **变量 := 表达式**
```
// 批量声明
var (
a int
b string
c bool
)
```
初始化变量注意
* 整型和浮点型默认值为0
* 字符串默认值为空字符串
* 布尔默认false
* 切片,指针,函数,映射默认值nil
```
package main
import "fmt"
func main() {
var num int = 10
fmt.Println(num)
// 输出10
var nums = 100
fmt.Println(nums)
//输出100
name, age := "Tom", 18
fmt.Println(name, age)
//输出Tom 18
}
```
省略变量类型编译器会根据 等号右边推导变量的类型。单个短变量不能重复声明类型。短声明会自己推导类型
多重赋值时,变量的左值和右值按照从左到右的顺序依次赋值。
### 变量值交换
> **使用中间变量c进行交换,也可以使用多重赋值的方法**
```
package main
import "fmt"
func main() {
var c int
a := 1
b := 2
//临时变量c储存a的值
c = a
a = b
b = c
fmt.Println(a)
// 2
fmt.Println(b)
// 1
// 使用另外一种方法 换回去
a, b = b, a
fmt.Println(a)
// 1
fmt.Println(b)
// 2
}
```
### 匿名变量
>**赋值给多个变量时,又不需要的变量可以用匿名变量代替**
```
package main
import "fmt"
func ReturnData() (int, int) {
return 10, 20
}
func main() {
a, _ := ReturnData()
//a接收函数ReturnData()里面的第一个值,第二个匿名变量接收
_, b := ReturnData()
//b接收函数ReturnData()里面的第二个值,,第一个匿名变量接收
fmt.Println(a, b)
// 输出 10 20
}
```
- 安装开发环境
- 安装开发环境
- 安装详细教程
- 引入包
- Go语言基础
- 基本变量与数据类型
- 变量
- 数据类型
- 指针
- 字符串
- 代码总结
- 常量与运算符
- 常量
- 运算符
- 流程控制
- if判断
- for循环
- switch分支
- goto跳转
- 斐波那契数列
- Go语言内置容器
- 数组
- 切片
- 映射
- 函数
- 函数(上)
- 函数(中)
- 函数(下)
- 小节
- 包管理
- 结构体
- 结构体(上)
- 结构体(中)
- 结构体(下)
- 小节
- 错误处理
- 错误处理
- 宕机
- 错误应用
- 小节
- 文件操作
- 获取目录
- 创建和删除目录
- 文件基本操作(上)
- 文件基本操作(中)
- 文件基本操作(下)
- 处理JSON文件
- 接口与类型
- 接口的创建与实现
- 接口赋值
- 接口嵌入
- 空接口
- 类型断言(1)
- 类型断言(2)
- 小节
- 并发与通道
- goroutine协程
- runtime包
- 通道channel
- 单向通道channel
- select
- 线程同步
- 多线程的深入学习
- http编程
- http简介
- Client和Request
- get请求
- post请求
- 模块函数方法
- 模块
- fmt库,模块
- 项目练习
- 爬虫:高三网
- 爬虫:快代理
- 爬虫:快代理2
- 多线程:通道思路
- 多线程爬虫:快代理