在同一个包下新建了一个包(文件夹),在新包下创建.go文件,并在文件中写了新的方法,此时在上一级包下的.go文件中调用新的.go文件中的函数或方法时,调用失败,IDE上提示无此方法。
下图是问题现象:
根本原因
问题的原因有两个:
1、golang不是面向对象的语言,所以调用时不能使用文件名加函数名进行调用;直接包名加函数名调用即可。
2、golang 不像其它语言有public 、protected、private 等访问控制修饰符;它控制权限是通过首字母大小写来判定的。定义的常量、变量、类型、接口、结构、函数等名称的首字母是大写的,则表示能被其它包访问或调用(相当于是public),非大写开头就只能在包内使用(相当于是private,变量或常量也可以下划线开头)
正确写法1、将新文件中函数的首字母改为大写
2、上级包下的文件调用时直接使用“包名.函数名”调用即可
正确调用如下图: