GO同目录的非main包的多个go文件之间调用

寅恪光潜
领域专家: 人工智能技术领域
2022-11-21 10:30:49

上一篇文章:GO同目录的不同文件之间的函数调用 是同目录的main函数去调用其他文件的函数,现在是非main函数来调用,如何处理,方法类似:

我们在testb目录里面新增一个testbb.go文件,然后testb.go去调用testbb.go,最后在testa.go中调用他们,会处理吗?

testb.go

package testb
 
import "fmt"
 
func Sum(i1 int, i2 int) int {
	return i1 + i2
}
 
func Hello(s string) string {
	res := fmt.Sprintf("你好,%s,近来可好?", s)
	res1 := HelloBB("法外狂徒张三")
	return res + res1
}

testbb.go

package testb
 
import "fmt"
 
func HelloBB(s string) string {
	res := fmt.Sprintf("Hello %s", s)
	return res
}

细心的伙伴们可能发现,同级目录的包名package要一样,不然编译会出错,比如testb下面所有的go文件的统一包名为package testb,然后我们将testb下面所有文件的编译,再编译testa所有文件,最后就会生成一个testa.exe,从这里也可以得出,后期同级目录下面的go文件的package名称统一是目录名称即可。

testa.go

package main
 
import (
	"fmt"
	"mywork/testb"
)
 
func main() {
	fmt.Println("和的结果:", testb.Sum(3, 4))
	fmt.Println(testb.Hello("寅恪光潜"))
}
 

C:\Users\Tony\go\src\mywork\testb>go build

#这里如果testa里面有其他需要编译的go文件,那就进入这个目录进行编译
C:\Users\Tony\go\src\mywork\testb>cd ../testa 
C:\Users\Tony\go\src\mywork\testa>go build

 
C:\Users\Tony\go\src\mywork\testa>testa
/*
和的结果: 7
你好,寅恪光潜,近来可好?Hello 法外狂徒张三
*/

...全文
289 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-编程语言 发布问题, 以便更快地解决您的疑问

199

社区成员

发帖
与我相关
我的任务
社区描述
从零开始的小白到进阶成技术达人。 一起学习,一起进步。
golanggo1.19 个人社区 贵州省·贵阳市
社区管理员
  • 寅恪光潜
  • 网络豆
  • Somnus_小凯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Go语言集各语言优势之大成,从基础到进阶

一起学习,一起进步,成为技术达人!

试试用AI创作助手写篇文章吧