go语法
标识符使用
用作空变量:
1
_ = x
包导入使用:
1
import _ xxx
空接口
1 | interface{} |
任何类型都是空接口类型的实现类型
++和–是语句不是表达式
1 | *p-- 等同于 (*p)-- |
表达式
表达式类型
1
2
3
4
5选择表达式 context.Speaker
索引表达式 array[1]
切片表达式 slice[1:2]
类型断言 v1.(I1)
调用表达式 v1.M1()断言表达式
v1.(I1)- 如果v1是非接口值,这需要先转化成接口值,
interface{}(v1).(I1) - 类型断言失败会引发运行时恐慌,使用如下
var i1, ok = interface{}(v1).(I1)
- 如果v1是非接口值,这需要先转化成接口值,
基本类型
- 有18种基础类型
1
rune类型是专门用来存储Unicode编码的单个字符
rune有5种表示形式
字符串字面量有两种表示形式
- 原生字符串字面量(`):所见即所得
- 解释型字符串字面量(”):解释转义字符
字符串的值不可变
常量只能使用基础类型,常量需使用const
高级类型
1 | 数组, 值类型 |
- make可以初始化切片,字典和通道
- slice不需要长度值
map示例
var a = map[string]bool{}1
表示key为string,value为bool,{}表示空值
map删除
delete(a, “192.168.0.1”)- 函数和方法
函数就是普通的函数
方法是函数的一种,实际上就是与某个数据类型关联在一起的函数- 方法分为
1
2值方法
指针方法
- 方法分为
流程控制
代码块1
2
3
4全局代码块
代码包代码块
源码文件代码块
函数或者for循环
range可以迭代string,map,数组,管道
painc
运行时错误是runtime.Error引起的