GoLang 学习
2022-01-22
 学习一门新技术:
 基本原理 基本语法
 入门案例 知识点基本使用
 怎么使用更规范 使用陷阱
 GoLang概述 程序。1.9.2 GO。
 Go 特点
 静态编译。动态开发效率。
 Go 文件都要属于一个包 不可单独存在。
 垃圾回收 天然并发。管道通信机制
 函数返回多个值 切片slice defer 延时执行。
 配置GOROOT GOPATH 工作目录和PATH
 shift+ALT+向下 :复制代码 VSCODE 快捷键。
 Go 语言会在每行后自动加分号。
 定义的变量或者包没有用到,编译不通过。
 转义字符
 \t \n \ " \r
 shift + tab 整体向左移动。
 gofmt -w ~.go 格式化并写入  运算符两边加空格。
 DOS 指令。
 Go
 变量
 变量赋值
// 指定变量类型 若声明后不赋值,使用默认值
	var i int
	// 根据值 自行判断 变量类型
	var j=9.9
	//省略var 注意: := 左侧 的变量不应该是已经声明过的 否则会编译错误
	k:=10
	fmt.Println("i=",i)
	fmt.Println("j=",j)
	fmt.Println("k=",k)
 
多变量声明。
n1,name,n3 :=100,"tom",888
	var (
		n4 =100
		n5 ="nice"
	)
 
变量 =变量值+ 类型+命名
 Go 中 + 加法 ,字符串拼接
 Go 没有char 用byte保存。由字节组成。
 Go 语言字符用的是UTF-8 编码 英文字母1字节 汉字3 字节。
 布尔类型 一个字节。
 字符串类型
 字符串是不可变的 
 利用双引号 / 利用反引号。输出复杂的字符串
 字符串拼接:
 字符串+字符串
 Go 中 不同类型变量之间赋值需要显式转换 不能自动转换。T(v) 把v转为T类型。
 转换后 原本值没有发生变化。 转换需要考虑范围。
 int32–> int8 报错 int32–> int64 依旧报错。需要做强转。
 如果没有用到一个包,又不想删掉,前面加一个_ 表示忽略。
 基本数据类型和String相互转换。
 fmt.Sprintf 格式化字符串。
 strconv 包函数
 ParseBool String 转为基本数据类型。
 如果没有转成功 就变成默认值。
指针及其内存布局。
值类型都有对应的指针类型。
 值类型包括:基本数据类型 int float bool string 数组和结构体struct
 引用类型 指针 切片slice map 管道chan iterface
 值类型:
 变量直接存储值 内存通常是在栈中分配
 引用类型变量存储的是一个地址 这个地址对应的空间才是真正存储数据(值)内存通常在堆上分配 当没有任何引用变量来引用这个地址时 该地址对应的数据空间就成为了一个垃圾,由GC来回收。
标识符的规范
1.26个英文字母 大小写 0-9 _组成
 2.不可以数字开头
 3.严格区分大小写
 4.不能包含空格
 5. 不能以保留字为标识符 25个
 6. 下划线仅能作为占位符使用 不能作为标识符使用。
 int 和float32 可以用但不推荐。
变量名 常量名 函数名 尽量采用驼峰命名法。
 首字母大写 可以被其他包访问 首字母小写则是私有的。没有public private 关键字
预定义标识符
 基础数据类型+内嵌函数
 运算符
 算术运算符
 赋值运算符
 比较运算符
 逻辑运算符
 位~
 其他~
 Go 中 取消三元运算符。










