本节主要讲解的是go语言的基础语法,主要参照的是自己的遗留问题。

文件路径

package

和java里面的包一样,也是需要先定义好文件夹路径

package的名字可以与文件夹的名字不一样,同一个文件夹下面的包名药一直,test文件除外

基础数据

和java差不多也是int,uint,float这些

数字的极限,只能通过使用math包来进行获取

string

与python类似,使用反引号这是个特点`进行作为字符串

常量与变量

使用var来进行定义,这个与js差不多,自动类型推断,先写变量名称在写类型,与rust差不多。

。通过使用大小写来作为pubilc与private的进行区别。

使用:=来进行类型推断。只有局部变量才可以

常量,使用const来进行修饰。这个字不可以进行修改的

iota进行自增加,主要是自我增加。

方法声明

常见的代码,首先 定义是函数,然后设置名称和类型。

可以返回多个类型与python类似

返回值的接受与变量差不多,直接使用:=来进行接受返回值。

函数式编程

主要思想就是把函数作为参数,然后如果要使用函数,直接加上()进行调用,没有括号就是普通的变量

闭包

这个概念与rust的概念差不多,就是函数的自带参数,可以传入到她返回的函数里面。

不定参数

这个与java类似,差不多就是。。。表示

defer

经典的关键字,相当于java的finally,但是我可以提前写,这是最后要执行的语句

顶用顺序与栈类似,filo,第一个最后一个调用

内置数据结构

切片

相当于arraylist,使用切片可以作为扩容,

主要的操作,使用make进行构建,append初始化,make可以坐初始化和capacity的初始化

只要进行扩容了,数组就不是同一个数组的啦,那就不相等了

范围获取,参考python,铅笔后开

map

hashmap的视线,也是通过构造make来实现

map[string]int这种返回类型,

赋值就和pyton差不多了

读取的时候,要自己进行处理,不存在的逻辑。

返回err

,删除元素使用delete进行

接口

与java的接口差不多

语法就是tppe a interface,进行定义类型行为

结构体

与class类似,只要实现上面接口的所有方法就是实现,无须关键字

前面的犯法,加上限定范围,与rust类似,表明是class的函数

初始化,这个参考的是c++的,直接使用{}就可以进行初始化,加入&,表明取到地址了。

*是具体操作对象,&是取地址,参照c++的语法。

一般方法,使用指针在前面,

class实现interface接口,使用ide自动搜索interface,限定参数都是地址。

泛型

与java类似,也是使用T来作为

参照,这些语法来进行,number是作为约束,与java的?这种限定差不多