基础语法:main函数要点

基础语法:包声明
- 语法形式:package xxxx
- 字母和下划线的组合
- 可以和文件夹不同名字
- 同一个目录下的文件声明一致,但是测试文件可以不同

一般情况下使用package my_name
,除非涉及到作用域的时候使用_test
结尾

Tips
使用Goland来创建文件,它会自动加上package
基础语法:包引入包
- 引入包语法形式:import [alias] xxx
- 如果一个包引入了但是没有使用,会报错
- 匿名引入:前面多一个下划线,匿名变量是为了触发包里的init方法

Tips
除了匿名引用,Goland会帮你自动引入你代码里面用的包,在你不用之后也会删除
在Goland修改名字小技巧:右键-refactor-rename,就会都会修改名字
Bool类型
bool类型就两个取值:true和false
bool运算:
组合取反是一个很容易犯错的地方?
- !(a&&b)等价于什么?
- !(a||b)等价于什么?
string类型
基础语法:string声明
- string
- 双引号引起来,则内部双引号需要使用\转义
引号引起来,可以换行

tip
不建议自己手写转义,而是自己先写好,然后复制到Goland,IDE会自动完成转义。
基础语法:string长度
- string的长度很特殊
- 字节长度:和编码无关,用Len(str)获取
- 字符数量:和编码有关,用编码库来计算

相关信息
如果你觉得字符串里边会出现非ASCII的字符,就记得用utf8库来计算“长度”
拼接字符串和int的方法
println("hello" + strconv.Itoa(i:123))
基础语法:strings包
- string的拼接直接使用+好就可以。需要注意的是,某些语言支持string和别的类型拼接,但是Golang不可以
- strings主要方法(你所需要的全部都可以找到,依赖于IDE提示最好):

[]byte和string
一般来说很少单独使用byte,都是使用[]byte,即byte的切片
[]byte和string之间可以互相转换
你可以看到,类型转化在Go里面的语法就是Dst(Src)。Dst就是你的目标类型
不要担心不能转,因为不能转的编译器都会直接报错

基础语法:rune类型
- rune,直观理解,就是字符
- rune不是byte
- rune本质是int32,一个rune四个字节
- rune在很多语言里是没有的,与之对应的是,Golang没有char类型。rune不是数字,也不是char,也不是byte

基础语法:bool、int、uint、float家族
- bool:true,false
- int8,int16,int32,int64,int【8代表比特,int用几个字节取决于cpu,大多数都是8字节】
- uint8,uint16,uint32,uint64,uint(明确知道不是负数),类似int家族,优先使用uint
- float32,float64(无脑用float64)
- 在Go里面四则运算分别对应于:
* +:加法,还有特殊的自增写法++
* -:减法,还有特殊的自减写法--
* *:乘法
* /:除法
基本类型:match包
在Go里面,更加复杂的运算都在match包里面,包括三角函数、聚合函数等。用法:直接输入match,gitland就会有提示
基本类型:数字类型的极值
数字类型的极值都在match包里面,作为常量。
- int和unit组都有最大值和最小值
- float32和float64只有最大值和最小正书,没有最小值
注意:低版本的GoSDK不一定有全部的极值的常量

类型不同不能进行相加减

基础语法: byte类型
- byte,字节,本质是uint8
- 对应的操作包在bytes上


基础语法:基本类型总结
- Golang的数字类型明确标注了长度、有符号
- Golang不会帮你做类型转换,类型不同无法通过编译,也因此,string只能和string拼接
- Golang有一个很特殊的rune类型,接近一般语言的char或者character的概念,非面试情况下,可以理解为"rune=字符"
- string遇事不决,找strings包