Go语言基础总结
2019-04-23 12:21:15 92 举报
AI智能生成
Go语言学习基础总结
作者其他创作
大纲/内容
变量
变量的三种方式
1) 指定变量类型,声明后若不赋值,使用默认值
2) 根据值自行判定变量类型(类型推导)
3) 省略 var, 注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误
4) 多变量声明,一次性声明多个变量,Golang 也提供这样的语法
5) 一次性声明多个全局变量【在 go 中函数外部定义变量就是全局变量】
6) 数据值可以在同一类型范围内不断变化(重点)
7) 变量在同一个作用域(在一个函数或者在代码块)内不能重名
8) 变量=变量名+值+数据类型,这一点请大家注意,变量的三要素
9) Golang 的变量如果没有赋初值,编译器会使用默认值, 比如 int 默认值 0<br>小数默认为 0 字符型为空
程序中 +号的使用
1) 当左右两边都是数值型时,则做加法运算
2) 当左右两边都是字符串,则做字符串拼接
数据类型基本介绍
整数类型
1) Golang 的整型默认声明为 int 型
2) 查看某个变量的字节大小和数据类型 (使用较多)
3) Golang程序中整型变量在使用时,遵守保小不保大的原则
小数类型/浮点型
1) Golang 浮点类型有固定的范围和字段长度,不受具体OS(操作系统)的影响
2) Golang 的浮点型<font color="#f15a23">默认声明为 float64 类型</font>。
3) 浮点型常量有两种表示形式<br>十进制数形式:如:5.12 .512 (必须有小数点) <br>科学计数法形式:如:5.1234e2 = 5.12 * 10 的 2 次方 5.12E-2 = 5.12/10 的 2 次方<br>
4) 通常情况下,应该使用 float64 ,因为它比 float32 更精确。[开发中,推荐使用 float64]
字符类型
1) 如果我们保存的字符在 ASCII 表的,比如[0-1, a-z,A-Z..]直接可以保存到 byte<br>2) 如果我们保存的字符对应码值大于 255,这时我们可以考虑使用 int 类型保存<br>3) 如果我们需要安装字符的方式输出,这时我们需要格式化输出,即 fmt.Printf(“%c”, c1)..
Go语言的编码都统一成了utf-8。非常的方便,很统一,再也没有编码乱码的困扰了
布尔类型
1) 布尔类型也叫 bool 类型,bool 类型数据只允许取值 true 和 false
2) bool类型占1个字节。
3) bool 类型适于逻辑运算,一般用于程序流程控制
string类型
1) Go语言的字符串的字节使用UTF-8编码标识Unicode文本,这样Golang统一使用UTF-8编码,中文 乱码问题不会再困扰程序员。
2) 字符串一旦赋值了,字符串就不能修改了:在 Go 中字符串是不可变的
3) 字符串的两种表示形式<br>(1) 双引号, 会识别转义字符<br>(2) 反引号,以字符串的原生形式输出,包括换行和特殊字符,可以实现防止攻击、输出源代码等效果
4) 字符串拼接方式
5) 当一行字符串太长时,需要使用到多行字符串,可以如上处理
基本数据类型的相互转换
1) Go中,数据类型的转换可以是从表示范围小-->表示范围大,也可以范围大--->范围小
2) 被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化!<br>
3) 在转换中,比如将 int64 转成 int8 【-128---127】 ,编译时不会报错,<br>只是转换的结果是按 溢出处理,和我们希望的结果不一样。 因此在转换时,需要考虑范围.
基本数据类型和 string 的转换
基本类型转 string 类型
方式 1:fmt.Sprintf("%参数", 表达式) 【个人习惯这个,灵活】
方式 2:使用 strconv 包的函数
string 类型转基本数据类型
在将 String 类型转成 基本数据类型时,要确保 String 类型能够转成有效的数据,<br>比如 我们可以 把 "123" , 转成一个整数,但是不能把 "hello" 转成一个整数,如果这样做,<br>Golang 直接将其转成 0 , 其它类型也是一样的道理. float => 0 bool => false
指针
Go程序开发注意事项
1) Go源文件以"go"为扩展名
2) Go应用程序的执行入口是main()函数。
3) Go语言严格区分大小写。
4) Go方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号)
5) Go编译器是一行行进行编译的,因此我们一行就写一条语句,否则报错。
6) go语言定义的变量或者import的包如果没有使用到,代码不能编译通过。
7) 大括号都是成对出现的,缺一不可。
学习方向
区块链研发
Go服务器端/游戏软件工程师
Golang分布式/云计算软件工程师
Golang 执行流程分析
1) 如果是对源码编译后,再执行,Go 的执行流程如上图<br>
2) 如果是对源码直接 执行 go run 源码,Go 的执行流程如下图
两种执行流程的方式区别
先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有 go 开发环境的机<br>器上,仍然可以运行
是直接 go run go 源代码,那么如果要在另外一个机器上这么运行,也需要 go 开发<br>环境,否则无法执行。
在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了<br>很多。
Golang语言特点
1.继承C语言理念
2.引入包概念
3.垃圾回收机制
<font color="#ffffff">4.天然并发(重要)</font>
1) 语言层面支持并发,实现简单
2) goroutine,轻量级线程,可实现大并发处理,高效利用多核
3) 基于CPS并发模型实现
5.管道通信
6.函数返回多值
7.新的创新
切片slice
延时执行defer
0 条评论
下一页