Golang的诞生
go语言的核心开发者—三位大牛
约定俗成:go总项目-src-go_code–项目1/项目2—-包-具体.go文件
生产模式中,通常先编译成.exe文件再执行
golang执行流程分析
- 变量在同一作用域中不能重名
- 变量 = 变量名+值+数据类型
- 变量在同一作用域中,该数值可以在同类型里不断变化(覆盖)
- 变量在没有赋值的情况下,编译器会使用默认值,例如int默认0,string默认空串,小数默认0
具体变量类型
无符 :
整型使用细节:
- golang各整数类型分:有符 和无符 ,int,uint的大小和系统有关。
- golang的整型默认声明为int型
- 如何在程序查看某个变量的字节大小和数据类型
- golang程序运行中整型变量在使用时,遵守保小不保大的原则,即:在保证程序正常运行下,尽量使用占用空间小的数据类型。如年龄。
- bit:计算机中最小的存储单位。byte:计算机中基本的存储单位。【二进制】
1byte = 8bit
2)小数类型/浮点型
用于存放小数:1.2,1.31,-1.19
说明:浮点数 = 符 位+指数位+尾数位
尾数位可能丢失,造成精度损失
float64比float32更精确
浮点类型使用细节:
- 浮点类型有固定的范围和字段长度,不受具体os的影响
- 浮点型默认声明float64类型
- 浮点型常量有两种表示形式
- 十进制数形式:如:5.12 ,.512(必须有小数点)
- 科学计数法形式:如:5.1234e2 = 5.12*10的2次方,5.12E-2 = 5.12/10的2次方
- 通常情况下,应该使用float64,因此它比float32更精确
3)字符类型
golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。(ASCII)
如果我们保存的字符在ASCII表的,如[0-1,1-z,A-Z]则可以保存到byte;
如果我们保存的字符对应码值大于255,这时我们可以考虑使用int类型保存;
如果我们需要安装字符的方式输出,这时我们需要格式化输出,即fmt.Printf(“byte1 = %c”, byte1)
字符类型使用细节
- 字符常量是使用单引 ’’括起来的单个字符,例如var c1 byte = ‘a’ var c2 int = ‘中’
- Go中允许使用转义字符’‘来将其后的字符转变为特殊字符型常量。例如 var c3 char = ‘n’ //’n’表示换行符
- go语言的字符使用utf-8编码
英文字母1个字节,汉字3个字节
- 在go中,字符的本质是一个整数,直接输出时,是该字符对应的utf-8编码的码值
- 直接可以给某个变量夫一个数字,然后按格式化输出时%c,会对应输出该字符的unicode字符
- 字符类型是可以进行运算的,相当于一个整数,因为它都对应有unicode码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CdMSQf5T-1646573975876)(http://h9x14s4c.xyz/img/202111211632922.png)]
4)布尔类型
也叫bool类型,bool类型数据只允许取值true和false。
bool类型占1个字节。
bool类型适合于逻辑运算,一般用于程序流程控制
不可以0或非0整数替代false和true,这点和c语言不同
5)字符串类型
字符串类型使用细节
- go语言的字符串字节使用utf-8编码表示unicode文本,这样golang统一使用utf-8编码,乱码的问题不会再困扰程序员
- 字符串一旦赋值了,字符串就不能修改了:在go中字符串是不可变的。
- 字符串的两种表示形式
- 双引 :会识别转移字符
- 反引 ,以字符串的原生形式输出,包括换行和特殊字符,可以实现防止攻击、输出源代码等效果
- 字符串拼接方式
- 多行使用+进行拼接时,加 留在前一行
基本数据类型默认值

基本数据类型转换
go在不同类型的变量之间赋值时需要显式转换(强制转换)。也就是说golang中数据类型不能自动转换
基本语法:
表达式T(v):将v转换为类型T
细节说明
- go中,数据类型的转换可以从表示范围小->表示范围大,也可以 范围大->范围小
- 被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化!
- 在转换中,比如将int64转成int8,编译时不会 错,只是转换结果是按溢出处理,和我们希望的结果不一样
ps:如果想忽略未定义的包,请在未引用的包前加下划线’_‘
基本数据类型转string类型
- 使用Springf转换
func Sprintf
Sprintf根据format参数生成格式化的字符串并返回该字符串。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!