// 变量命名方式
当用两个或两个以上的单词命名变量时,可以将除第一个单词以外的所有单词的首字母大写
package 命名方式
全部小写
不加 _

布尔类型:bool
整型:int8、byte、int16、int、uint、uintptr 等
浮点类型:float32、float64
复数类型:complex64、complex128
字符串:string
字符类型:rune
错误类型:error

Go 语言也支持以下这些复合类型:
指针(pointer)
数组(array) len() 数组长度
切片(slice) make(type, i, j) type为类型 i创建一个初始元素个数为i的数组切片 j预留 j 个元素的存储空间(容量为j) len()返回切片的长度 cap() 返回存储空间长度
字典(map)
通道(chan)
结构体(struct)
接口(interface)

time包
Now() 当前时间
Date(year, month, day, day ...)指定时间
(T time)Format("2006/1/2 15:04:05") 格式化
Parse() string -> time

file的操作
os.Stat 打开文件
file.Name() 文件名
file.Size() 大小
IsDir

数据类型: 整型及运算符

类型 长度(单位:字节) 说明 值范围 默认值
int8 1 带符号8位整型 -128~127 0
uint8 1 无符号8位整型,与 byte 类型等价 0~255 0
int16 2 带符号16位整型 -32768~32767 0
uint16 2 无符号16位整型 0~65535 0
int32 4 带符号32位整型,与 rune 类型等价 -2147483648~2147483647 0
uint32 4 无符号32位整型 0~4294967295 0
int64 8 带符号64位整型 -9223372036854775808~9223372036854775807 0
uint64 8 无符号64位整型 0~18446744073709551615 0
int 32位或64位 与具体平台相关 与具体平台相关 0
uint 32位或64位 与具体平台相关 与具体平台相关 0
uintptr 与对应指针相同 无符号整型,足以存储指针值的未解释位 32位平台下为4字节,64位平台下为8字节 0

注:++ 或 -- 只能出现在语句中,不能用于表达式,故不参与优先级判断。

go for 循环中 最好还是用 range
for i, ch := range str

自带的strconv 包

查看 接口 go doc strconv
常用的
string和int的转换
int转换为字符串:Itoa()
string转换为int:Atoi() func Atoi(s string) (int, error)

Parse类函数
Parse类函数用于转换字符串为给定类型的值:ParseBool()、ParseFloat()、ParseInt()、ParseUint()。

Format类函数
将给定类型格式化为string类型:FormatBool()、FormatFloat()、FormatInt()、FormatUint()。

Append类函数
AppendTP类函数用于将TP转换成字符串后append到一个slice中:AppendBool()、AppendFloat()、AppendInt()、AppendUint()。

q := strconv.Quote("Hello, 世界") // 为字符串加引号
q := strconv.QuoteToASCII("Hello, 世界") // 将字符串转化为 ASCII 编码

字典类型的声明、初始化和基本使用

type Integer int
注意,这个时候 Integer 已经是一个新的类型了,这与 type Integer = int 不同,后者只是为 int 类型设置一个别名。

通过 channel 进行消息传递

通道看作是一个先进先出(FIFO)的队列,通道中的元素会严格按照发送顺序排列,继而按照排列顺序被接收,通道元素的发送和接收都可以通过 <- 操作符来实现,发送时元素值在右,通道变量在左
ch <- 1 // 表示把元素 1 发送到通道 ch
接收时通道变量在右,可以通过指定变量接收元素值
element := <-ch

defer
延迟函数调用的用法
func main(){
defer func() { fmt.Println("延迟调用") }()
fmt.Println("正常调用")
}
正常代码
延迟调用

func main(){
defer func() { fmt.Println("延迟调用1") }()
defer func() { fmt.Println("延迟调用2") }()
fmt.Println("正常代码")
}
正常代码
延迟调用2
延迟调用1
url: https://blog.csdn.net/java_code_net/article/details/94976939

存储类型
值类型: int float string bool array struct
引用类型:slice(切片) map

指向数组的指针 可以直接p[]

通道
ch := make(chan int) // 双向通道
ch2 := make(chan <- int) // 单向 只能写 不能读
ch3 := make(<- chan int) // 单向 只能读 不能写

最新文章

  1. Android权限管理之Android 6.0运行时权限及解决办法
  2. SQL语句大全
  3. 开发基于Edge渲染内核的浏览器应用
  4. Windows平台Tomcat服务搭建
  5. mysql基本命令整理
  6. ASP.NET 缓存技术分析
  7. EditText html 出现提示 This text field does not specify an inputType or a hint
  8. 卸载已经安装的rpm包
  9. iOS 图片压缩
  10. mysql 行列动态转换(列联表,交叉表)
  11. foo,bar,baz
  12. http接口测试浏览器插件
  13. RadioButton、CheckBox与ToggleButton
  14. 【Android Developers Training】 59. 管理图片存储
  15. 【BZOJ1001】狼抓兔子(网络流)
  16. 按指定id顺序查询
  17. 【.NET Core】ASP.NET Core之IdentityServer4(1):快速入门
  18. Git配置用户信息和SSH
  19. canvas和图片之间的互相装换
  20. Git 学习之git 起步(一)

热门文章

  1. [Shell]MySql慢查询日志GetShell
  2. 纯JavaScript开发飞机大战项目
  3. 容易被忽视的python装饰器的特性
  4. python TypeError: unsupported operand type(s) for +: &#39;geoprocessing value object&#39; and &#39;str&#39;
  5. Mybatis-Generator开发教程
  6. 右键查看别人网页的js代码为什么会显示乱码
  7. Laravel--文件管理及上传自定义目录及文件名
  8. 微信小程序wx.uploadFile的两个坑
  9. 使用localStorage写一个简单的备忘录
  10. 【设备问题】罗技M590鼠标无法连接Macbook Pro问题解决