Go语言入门指南|青训营

27 阅读4分钟

一.Go语言的出现 Go语言最初由Google公司的Robert Griesemer、Ken Thompson和Rob Pike三个大牛于2007年开始设计发明,他们最终的目标是设计一种适应网络和多核时代的C语言。所以Go语言很多时候被描述为“类C语言”,或者是“21世纪的C语言”,当然从各种角度看,Go语言确实是从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等诸多编程思想。但是Go语言更是对C语言最彻底的一次扬弃,它舍弃了C语言中灵活但是危险的指针运算,还重新设计了C语言中部分不太合理运算符的优先级,并在很多细微的地方都做了必要的打磨和改变。 二.go语言代码 package main import "fmt" func main() { // 终端输出hello world fmt.Println("Hello world!") } 和C语言相似,go语言的基本组成有: 包声明,编写源文件时,必须在非注释的第一行指明这个文件属于哪个包,如package main。 引入包,其实就是告诉Go 编译器这个程序需要使用的包,如import "fmt"其实就是引入了fmt包。 函数,和c语言相同,即是一个可以实现某一个功能的函数体,每一个可执行程序中必须拥有一个main函数。 变量,Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。 语句/表达式,在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。 注释,和c语言中的注释方式相同,可以在任何地方使用以 // 开头的单行注释。以 /* 开头,并以 / 结尾来进行多行注释,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。 大多数其实和C语言真的很像 不过他比C语言更加简短 如果初学者选择一门编程语言的话 Go语言是很好的选择 他入门门槛低 学习周期短 可以更快的运用所学去完成基本项目 现在大厂 字节 阿里等也都在使用Go语言进行开发 三、数据类型基本和C相同 :=符号 当我们定义一个变量后又使用该符号初始化变量,就会产生编译错误,因为该符号其实是一个声明语句。 四、指针声明和初始化 和基础类型数据相同,在使用指针变量之前我们首先需要申明指针,声明格式如下:var var_name var-type,其中的var-type 为指针类型,var_name 为指针变量名, 号用于指定变量是作为一个指针。 var a int= 20 / 声明实际变量 */ var ip int / 声明指针变量 / ip = &a / 指针变量的存储地址 */ 空指针 当一个指针被定义后没有分配到任何变量时,它的值为 nil,也称为空指针。它概念上和其它语言的null、NULL一样,都指代零值或空值。 五、数组 和c语言相同,Go语言也提供了数组类型的数据结构,数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。 六、结构体 通过上述数组的学习,我们就可以直接定义多个同类型的变量,但这往往也是一种限制,只能存储同一种类型的数据,而我们在结构体中就可以定义多个不同的数据类型。 七、slice定义 我们先看看切片的结构定义,reflect.SliceHeader: type SliceHeader struct { Data uintptr // 指向底层的的数组指针 Len int // 切片长度 Cap int // 切片最大长度 }