GoLang语言学习记录(二)


createdtime 20210823

updatedtime 20210917

author venki.chen


继GoLang语言学习记录(一)
  1. 编译生成指定名字文件 go build -o 目标文件名 源文件名
  2. go编程代码风格
1. 官方推进用行注释;
2. 正确的缩进;
3. 运算符两边加空格,例如:1 = 2;
4. 花括号之第一个括号不能独立成行,必须和函数名同行;
func main () {
    
}
  1. 变量的数据值可以在同一数据类型范围内不断变化,变量名在同一作用域内不能重名
  2. 浮点数据类型:①浮点数+符号位+指数位+尾数位;②精度损失,如果希望精度更高的数据,最好选用float64,浮点数据默认数据类型是float64,开发中没有特殊要求,默认使用float64;
  3. 字符数据类型:go的字符串是由字节组成byte,字符常量用单引号包裹,
  4. golang中的编码是utf-8,字符类型是可以进行运算的,相当于一个整数,运算时是按照码值进行运算的。
  5. 字符类型存取到计算机的过程:存储:字符->对应码值->二进制->存储;读取:二进制->码值->字符->读取。
  6. bool类型占用一个字节。
  7. string表示两种形式:双引号和反引号,反引号可以原样输出特殊符号,双引号可能出现转移。
  8. 拼接字符串:
# 方式一
var str = "h"+"e"
str += "lllo"

# 方式二,字符串很长换行时,一定要将 +  留在上一行
var str = "h" + "h" +
"h" + "h" +
"h" + "h" +
  1. string转基本数据类型注意事项:①要确保string类型可以转成有效地数据类型,如果将hello转成int,那么就是0.
  2. 指针
  3. 值类型包括:基本数据类型 int系列、float系列、bool和string系列、数据以及结构体;引用类型:指针、slice切片、map、管道channel、接口interface等;值类型:变量直接存储值,变量存储在栈区;引用类型存储的是一个地址,通常存储在堆区。
  4. 标识符的命名规则
1. 26个英文字母大小写,0-9,_组成;
2. 数字不可以开头;
3. golang中严格区分大小写;
4. 不能包含空格;
5. 下划线“_”在go中是一个特殊的标识符,称为空标识符;
6. 包名和所在文件夹名尽量保持一致;
7. 变量名、函数名、常量名采用驼峰法;
8. 首字母大写是公开的,首字母小写的是私有的;
  1. 针对于取模运算,还是要注意的:
# 取模运算:计算公式a%b=a-a/b*b;或者结果数的正负和被除数的符号保持一致
fmt.Println(10 % 3)// 1
fmt.Println(-10 % 3)// -1
fmt.Println(10 % -3)// 1
fmt.Println(-10 % -3)// -1
  1. a++ 不能用于赋值使用,也不能直接用于逻辑运算,只能单独使用,++ --只有后置没有前置(–a ++a)。
  2. golang没有三元运算符,因为golang语言的思想就是,争取一种问题一种解决方式。
  3. 原码、反码、补码
1. 二进制的最高位是符号位,0表示正数1(0000 0001),1表示负数-1(1000 0001)
2. 正数的原码,反码,补码都一样
3. 负数的反码等于它的原码符号位不变,其他位取反(0->1,1->0)

1====》原码(0000 0001)反码(0000 0001)补码(0000 0001)
-1===》原码(1000 0001)反码(1111 1110)补码(1111 1111)

4. 负数的补码等于它的反码+1
5. 0的反码,补码都是0
6. 在计算机运行的时候,都是以补码的方式来运算的 1+1  1 - 1 = 1 + (-1)

  1. 位运算可的应用场景:
1. 奇数偶数判断a&1 = 0 偶数;a&1 = 1 奇数
2. 权限系统构建
  1. 闰年的判断条件:①能被4整除且不能被100整除;②能被400整除。
  2. 多分支结构只要满足一个条件就不会继续向下判断。
  3. 条件语句中不能是赋值语句 if a = true {}
  4. 嵌套分支最好不要超过3层。
  5. Switch 分支中 不需要加break 因为golang默认加上去的,cash 的条件表达式可以是多个。
  6. byte 类型是unit8的别名,rune是int32的别名。
  7. Switch 穿透 fallthrought,默认只能穿透一层。

猜你喜欢

转载自blog.csdn.net/qq_38721452/article/details/120346265