第一周,go语言拾遗
本节主要讲解的是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的?这种限定差不多