Golang|学习教程(一)-基础概念
最新使用Python编写一些处理脚本,感觉与golang之间的语法开始模糊,因此决定根据官方文档,写一下golang的入门教程,顺便复习一下相关语法巩固基础。
包
包是golang里的最基本组成部件,go程序就是由一个个包组装起来的,例如程序入口main包。
如何定义一个包,只要使用package
关键字就行了,在go文件的第一行设定包名。
|
|
需要注意的是,一个文件夹下面直接包含的文件只能属于一个包,同样一个包的文件不能在多个文件夹下。
另一个需要注意的问题是包的导入流程,每个包都可以拥有一个特殊函数init()
,当包导入时,首先执行全局变量的构建,之后执行包的默认初始化函数init
。
导入
包的导入,使用关键字import
,具体使用如下,注意示例中常用的几种情况。
|
|
导出
在包中,如果函数和变量是大写字母开头的,则是可以导出的函数和变量,即可以通过导入包,在外部使用包中对应的函数和变量。
|
|
函数
编程语言具有的基本组件——函数,通常将多次复用的代码块抽离为一个函数,多个调用方通过函数调用,实现具体逻辑,这样方便项目维护,代码逻辑上的统一管理。
go语言中函数定义使用关键字func
,后面接入参与出参,具体定义使用如下。
|
|
上面最后一个用例,带返回变量名的函数,函数最后直接return,不需要再写明返回变量名,注意,这样虽然简便,但日常开发中,业务逻辑复杂的时候,返回点多时这样的简略写法不利于代码阅读,因此不推荐使用。
在go语言中,函数也可以作为参数
变量
go语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。声明变量的一般形式是使用 var 关键字,例如var name string
,可以发现go语言的变量定义,变量类型是放在变量名之后的。同样,当我们定义多个相同类型的变量时,可以使用如下方法:
|
|
变量定义之后如何初始化?我们使用=
赋值符号进行操作,例如var name string = "ww"
,定义变量类型后使用=
符号直接进行初始化,此外我们也可以使用:=
进行直接定义并赋值。
|
|
在使用:=
符号时,go语言会基于右边的数据进行变量类型的判断,此外需要注意,不能重复定义已经存在的变量名。
|
|
类型
go语言中定义的默认类型有以下几种
|
|
需要注意的是,int uint uintptr
这三种类型都是基于操作系统,如果是32位操作系统,则int
对应的就是32 bits,同理64位操作系统,int
对应的是64 bits。
定义了基础类型,不得不说默认值的问题,数值型的类型默认零值就是0,bool
类型的默认值是false
,而字符串类型的默认值就是空字符串""
。
针对基础类型,我们可以使用以下方法,实现类型转换:
|
|
常量
常量的声明使用const
关键字,例如const pi = 3.1415926
。常量的声明可以是字符、字符串、布尔、数值类型,此外常量不能使用:=
定义。
运算符
go语言内置的运算符有以下几种,算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、其他运算符。
算术运算符: + - * / % ++ –
关系运算符: == != > < >= <=
逻辑运算符: && || !
位运算符: & | ^ << >>
赋值运算符: = += -= *= /= %= <<= >>= &= ^= |=
其他运算符: & * ()
具体表优先级由高到低如下排序:
优先级 | 运算符 |
---|---|
5 | * / % << >> & &^ |
4 | + - | ^ |
3 | == != < <= > >= |
2 | && |
1 | || |