开始
在每次学习一种语言的,都需要先从认识这么语言开始,首先去了解这门语言的好处?应用场景?代码风格?发量消耗? 显著特点?
在本节课堂“走进Go语言基础语言,我们首先了解了go语言的有点有哪些,包括:
- 高性能、高并发
- 语法简单学习曲线平缓
- 丰富的标准库
- 完善的工具链(性能优化,代码提示。。。)
- 静态链接
- 快速编译(几乎最快!)
- 跨平台(linux MacOS Android IOS)
- 垃圾回收(无需要考虑内存的分配释放)
首先看了一个最简单的Go程序,如下图
看到这段程序的第一反应:嗯?函数用func?对于这种新鲜的书写风格,一时间感觉这门语言的风格需要适应一段时间。另外感觉到代码的简洁程度介于C与python之间。当然这只是个人的一点小小的见解。
入门
Go语言是一门强类型语言,变量类型主要包括 字符串 整数 浮点型 布尔型
func main(){
var a="initial"
var b,c int = 1,2
var d=true
var e float64
f := float32(e)
g :=a+"foo"
fmt.Println(a,b,c,d,e,f)
fmt.Println(g)
}
变量的声明: 1.var 变量名 = value 能自动推导类型 2.变量名 :=值 3.常量const
判断语句ifelse:
在if中后面应当紧跟大括号,不能把语句和if写一行。
同样也可以使用else if
在这里注意到了第17行的用法,在if中声明变量后直接使用。
没有括号!!!
循环语句:
在golang语言中,只有for循环一种循环方式,没有while与dowhile
我们可以直接使用for{}来写死循环
continue break同样适用
switch:
在该案例中用到了time包中的Now()与Hour(),在后面老师具体解释了time模块
可以使用任意的类型,不需要写break。
数组:
索引从0开始,案例中
var a [5]int创建一个大小为5的数组
也可以用b:=[5]int{1,2,3,4,5}来进行初始化
切片: 我们可以使用make来创建一个切片
这是一个相比c java python比较新鲜的用法,使用make关键字来实现创建切片,对切片我们可以使用append()方法向切片中追加元素,功能比数组更加强大。
我们还可以使用copy(make_01,make_02)来继续进行复制 来golang当中,同样可以使用python的切片方法例如s[2:5]就是从索引2到索引4的所有元素
map:
map在其他地方叫做字典等,是一个键值对的类型通过m["key_name"]来查找值,如果没有的,会被判为false
range:
函数:
在golang中,关键字不再是function,而是func。
指针:
我们通过n+=2只是把值接过来用,并没有真正的改变,我们可以使用类似C中的指针。
结构体:
通过关键字type XX struct{}来创建一个结构体 赋值例如:a:=user{name:"wang",password:"1024"} 我们也可以对单个属性进行复制,如案例中的c
结构体方法:
狗仔一个函数,并使用结构体的类型来进行创建即可
错误处理:
关于错误处理,我们要在后面再添加一个(err error),当碰见错误时,执行err中的业务
字符串操作:
可以使用Contains来检测是否包含; 使用Count来计数某种元素的出现次数; Index进行定位,输出索引; 还有更多方法参考示例代码
字符串格式化:
在案例当中,我们可以发现可以用%v来格式化字符串,当遇到是一种map类型,使用%v仅输出value,我们可以通过%+v同时输出key与value
JSON处理:
我们一般使用json.Marshal()方法来序列化; 使用json.Unmarshal()来反序列化
时间处理:
引入time模块,可以通过Now获取当前时间;
通过.Year() .Month() .Day() .Hour() .Minute();
在业务当中如果我们想获取一个时间戳,我可以通过now.Unix()来获取。
数字解析:
主要就是通过ParseFloat ParseInt来实现将字符串转换成浮点数或整数
进程信息:
这就是在本次课堂中所学到的,欢迎各位小伙伴指正!