Go Skills
Overview
- Go 是编译型语言
- Go 原生支持 UTF-8,可以处理各国语言
- main 包用来定义一个独立运行的程序
- 空标识符:
_(下划线)
- 格式化代码工具
- gofmt
- goimports
命令行参数
- os.Args 是一个字符串 slice, slice 索引是半开区间的
变量
- 接口和引用类型(slice、指针、map、通道、函数)的零值为 nil
- new(T) 返回地址,即指针
- 所有的变量都有地址,即指针
基本数据
- rune 类型是 int32 类型的同义词,代表一个 Unicode
- byte 类型是 int8 类型的同义词
- 就 Go 而言,取模余数的正负号总是与被除数一致
- Go 的 range 循环也适用于字符串,按 UTF-8 隐式解码
- 整数转换成字符串
- fmt.Sprintf(“%d”, x)
- strconv.Itoa(x)
- strconv.FormatInt(int64(x), 2)
- 字符串转化成整数
x, err := strconv.Atoi("123")
y, err := strconv.ParseInt("123", 10, 64)
复合数据类型
- slice 无法做比较,必须自己写函数进行比较
slice = append(slice, element)
- copy 函数用来为两个拥有相同类型元素的 slice 复制元素
函数
- Go 语言没有默认参数值的概念也不能指定实参值
- defer 语句经常使用于成对的操作,比如打开和关闭,连接和断开,加锁和解锁
- Go 语言封装的单元是包而不是类型
- Go 语言函数可以返回多个值,用逗号进行分隔
- 与许多其他语言不太, Go 语言通过使用普通的值而非异常来报告错误
fmt.Errorf("%v", errorMessage)
- 延迟函数:defer 语句经常使用于成对的操作,比如打开和关闭,连接和断开,加锁和解锁
方法
- 与函数类似,在函数名前多了一个类型参数,且圆括号是必须的
接口
- Go 的接口是隐事实现的
- 空接口类型:
interface{}
语句
- 递增语句
i++
是语句,不是表达式,且只支持后缀,不支持--i
- for 是 Go 里面的唯一循环语句
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 知识碰撞!
评论