我是靠谱客的博主 负责金鱼,最近开发中收集的这篇文章主要介绍Go之包,函数,方法1.首先要了解Go的分级机制2.Go导入自定义的包3.包的初始化流程4.函数之参数5.函数之defer6.函数之参数7.方法    ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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.方法    所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部