概述
1.首先要了解Go的分级机制
Go是以包的形式来分级的在上面的图中,同一目录下的文件只能是相同的package,package名字可与目录不一样,Go的封装十分简单,若函数名,变量名是大写字母开头的,那这个变量或者函数是在各个包都是可见的,若是小写,那么只能在同一个包是可见。
2.Go导入自定义的包
我们可以看出,如果我们想导入自定义的包,只需要项目名加目录名,我们就可以导入改目录下的所有文件,如果我们想调用文件里面的内容并不是文件名加方法名,而是我们所定义的包名+函数名或者变量名的方法来调用。
3.包的初始化流程
我们可以看出,初始化可以分为2部分来看,首先包的初始化顺序,然后是单个包初始化顺序,首先包的初始化顺序和包的导入方式有关,如果一个包被导入多次,只会初始化一次,然后单个包的初始化顺序是const常量,变量,然后是init()函数。
4.函数之参数
Go支持可变的输入参数,可变数量的输入参数
如图,该函数接收2到任意个参数,但是要注意 ... type只能放在最后的位置
5.函数之defer
defer相当于python中try catch finally中的finally,不管程序有没有执行defer的函数都会执行,一个函数里面可以定义多个defer,若定义多个defer,defer的执行顺序就是先进后出,其实就是一个栈,一般如下图定义:
主要用匿名函数,一般用途可用于锁的释放
6.函数之参数
go的参数只有值传递一种方式,不过我们可以用指针来进行引用传递
7.方法
方法其实就是定义在类里面的方法,我们可以给任何自定义类型添加一个或多个方法。每种类型对应的方法必须和类型的定义在同一个包中,因此是无法给int
这类内置类型添加方法的(因为方法的定义和类型的定义不在一个包中,对于给定的类型,每个方法的名字必须是唯一的,同时方法和函数一样也不支持重载。
方法的定义有2种方式,f1这种方法会对对象进行一次拷贝,再进行运算,所以修改不会影响原来的对象,方法二相当于引用对象的指针,所以修改会影响到原来的对象
最后
以上就是负责金鱼为你收集整理的Go之包,函数,方法1.首先要了解Go的分级机制2.Go导入自定义的包3.包的初始化流程4.函数之参数5.函数之defer6.函数之参数7.方法 的全部内容,希望文章能够帮你解决Go之包,函数,方法1.首先要了解Go的分级机制2.Go导入自定义的包3.包的初始化流程4.函数之参数5.函数之defer6.函数之参数7.方法 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复