老鸟一周玩转go语法--周一

前言:本系列课程,面向有其他高级编程语言的coder。当有兴趣或者有需要使用go的需求时,快速了解上手go的指南。

如何安装go sdk和go ide,自行搞定。这里只做两点说明:go是编译型语言,和C不同,C语言没有包的概念。vs-code免费,goland收费,但可以破解。推荐使用goland。

知识点:

1.所有的go代码都要明确属于哪个包,每个包都是一个可运行的程序,每个go应用程序都必须包含一个main包。每个可执行的程序都必须包含main函数。init函数是初始化函数(可选),在main函数之前运行。

2.引用别的包使用import指令。包名与文件名和文件夹名不必保持一致,但在一个文件夹之下的文件,必须只能有一种包名。

3.标识符的首字母决定该标识符代表的元素在包外的可见性。大写可见相当于public,小写不可见,包内可见,相当于protected。

4.代码行最后,编译器自动补充分号,无需填写。但多个语句在一行(不建议这种风格),则必须用分号隔开。注释并不会被编译器编译。标识符由字母数字下划线组成,数字不能开头。

5.字符串拼接使用"+"操作。

6.go使用var关键字定义变量,并习惯性将类型放置变量名称后面,而且要求使用空格将他们分隔开来。同时建议变量与运算符之间使用空格间隔。支持一次声明多个同类型变量【变量名之间用逗号隔开】。声明变量时,可以直接给出初始值,此时可以省略变量类型。若没有给出初始值,则必须给出变量类型,编译器会根据该类型给出一个默认初始值【数值型:0,布尔型:false,字符串:"",其他类型是nil】。注意一个特殊的声明语句“name := value ”,这是声明加赋值,已声明过的变量不能再次声明,否则会编译错误,且这种不带声明格式的只能在函数体中出现

6.1 关于局部变量和全局变量,区别就是是在函数内还是在包内。不同作用域允许同名变量,寻找变量时,采用最近原则。如果你声明了一个局部变量却没有在相同的代码块中使用它,同样会得到编译错误。全局变量是允许声明但不使用的。 

6.2 可以简单地使用 a, b = b, a,交换两个变量的值,两个变量的类型必须是相同。

// 这种因式分解关键字的写法一般用于声明全局变量
var (
    vname1 v_type1
    vname2 v_type2
)

6.2 下划线“_”是一个特殊的变量,我们称之为匿名变量,用于抛弃值,匿名变量不占用命名空间,不会分配内存。匿名变量与匿名变量之间也不会因为多次声明而无法使用,常用于避免因为该函数返回多个值而不得不定义一堆没用的变量。

7.fmt包中常用的两个函数,Println和Sprintf分别是打印出一行字符串和返回格式化字符串

8.数据类型用来声明变量和函数的,方便申请合理的尺寸的内存大小,用来存储数据。常见的类型分为,布尔型【true和false】、数字型【int,float32,float64等等,有很多,要留心记忆一下】、字符串型【单个字节是使用 UTF-8 编码标识 的Unicode 文本】、派生类型【指针类型、数组类型、结构化类型、信道类型、函数类型、切片类型、接口类型、Map类型】

你可能感兴趣的:(老鸟学go,go,基础,老鸟)