Go 包导入方式 成员可见性

网友投稿 285 2022-11-28

Go 包导入方式 成员可见性

包导入

1)绝对路径导入

gopath管理就在 GOPATH/src 目录中查找包

如果是gomod那么就 前缀是当前的项目模块名称 ,如果是外部的包那么就是整个模块的名称

import( go 标准包 第三方包 本地包)

2) 相对路径导入

gomod方式已经不支持了,只有在gopath方式下支持。在当前文件所在的目录查找,这个不建议使用,知道即可。

示例:import "./gpkgname/pkg02"

3) 点导入

在调用点导入包中的成员时可以直接使用成员名称进行调用(省略包名,一般也不怎么使用)

如果有两个包,里面都有Add方法,如果都使用点导入进来,那么使用Add到底使用哪个呢?这就会出现问题,所以这种方式也少用。

4) 别名导入

当导入不同路径的相同包名时,可以别名导入为包重命名,避免冲突

5) 下划线导入

Go 不允许包导入但未使用,在某些情况下需要初始化包,使用空白符作为别名进行导入,从而使得包中的初始化函数可以执行。(有些时候使用驱动包的时候,咋们需要将包里面的东西进行初始化,只是初始化包,并不会去调用里面的函数或者变量,这个时候就得使用下划线导入。)

成员可见性

Go 语言使用名称首字母大小写来判断对象(常量、变量、函数、类型、结构体、方法等)的访问权限,首字母大写标识包外可见(公开的),否者仅包内可访问(内部的)。

在包里面可以定义一些内容不想让外面去访问,写了一个函数是内部自己使用的,这就涉及到包内成员的可访问性。

包内 首字母大写包外可见 ,首字母小写只能在包内可见。可见也就是能不能调用。

函数类型可见性

如果不可见成员要想被调用,可以在可见成员里面去使用,这样就可以被包外的调用者使用到。

变量类型可访问性

在外面修改这个变量也会影响到包里面的这个变量,如果是小写字母就不可以在包外访问。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot开发技巧之如何处理跨域请求CORS
下一篇:S5935如何实现DMA传输的设计与研究
相关文章

 发表评论

暂时没有评论,来抢沙发吧~