go语言基础学习心得01|青训营笔记

55 阅读3分钟

一、变量的概念和使用

go语言的特性:

静态语言:强类型语言

go、java、c++c#...

动态语言:弱类型语言

JavaScript、ptp、 python、ruby...

变量的本质,就是一小块内存,用于存储数据,在程序运行过程中数值可以改变

使用:

step1: 变量的声明,也叫定义

step2: 变量的访问,赋值和取值

二、变量的内存分析和注意事项

1、变量必须先定义才能使用

2、变量的类型和赋值必须一致

3、同一个作用域内,变量名不能冲突

4、简短的定义方式,左边的变量至少有一个是新的

5、简短定义方式不能使用于全局变量的定义

三、常量的使用

1、概念:同变量类似,陈那个徐执行过程中数值不能改变

2、语法:

显式类型定义

隐式类型定义

3、固定的数值:

100, "abc"

4、一组常量中,如果某个常量没有初始值,默认和上一行一致

5、枚举类型:使用常量组作为枚举类型,一组相关数值的数据

四、ioat关键字

特殊的常量,可以被编译器自动修改的常量

每当定义一个const,ioat的初始值为0

每当定义一个产量,就会自动累加1

直到下一个const常量出现,清零

、基本数据类型

1、布尔类型: bool

取值:true false 

2、数值类型 :

整数 : int

有符号:最高位表示符号位,0为正数,1为负数,其余位表示数值

int8: -128~127

int16: -32768~32767

int32: -2147483648~2147483647

int64:-9223372036854775808~9223372036854775807

无符号:所有位表示数值

uint80~255

uint160~65536

uint320~4294967295

uint64: 0~18446744073709551615

byte:uint8

rune: int32

浮点:生活中的小数

float32

float64

复数:complex

3、字符串: string

复合数据类型: array、slice、map、function、pointer、struct、interface、channel...

六、字符串型

1、概念:多个byte的集合,理解为一个字符序列

2、语法:使用双引号

"abc" "ABC" "A"

也可以使用''

3、编码问题

计算机本质识别0和1

A:65 B:66 C:67

a:97

ACSII(美国标准信息交换码)

Unicode编码表:号称统一了全世界

UTF-8、UTF-16、UTF-32...

4、转义字符:\

A:有一些字符,有特殊的作用,可以转义为普通的字符

B:有一些字符,就是一个普通的字符,转义后有特殊的作用,换行等

七、基本数据类型的转换

兼容类型可以转换

常数:在有需要的时候,自动转换

变量:需要手动转换

八、算术运算符

+,-,*,/,%,++, --

位运算符等等

九、键盘输入和打印输出

输出:

Print() //打印

Printf() //格式化打印

Printfln() //打印之后换行

格式化打印占位符:

studygolang.com/articles/20…

十、切片的语法

var identifier [] type

切片不需要说明长度

或者使用make()函数进行处理, func make(t Type, size ... IntegerType) Type

第一个参数:类型

slice、mapchan

第二个参数:长度len

实际存储元素的数量

第三个参数:容量cap

最多能够存储的元素个数

slice的内存分析

1、每一个切片引用了一个底层数组

2、切片本身不存在任何数据,都是这个底层数组存储,所以修改切片也就是修改这个数组中的数据

3、当向切片中添加数据时,使用append(append(s1, elems:6,7,8))如果没有超过容量,直接添加,如果超过容量,自动扩容(成倍增长)

4、切片一旦扩容,就是重新指向一个新的底层数组