如何在 Golang 中使用其他包的函数?


我们知道,Golang 中的每个代码都存在于一个包中,它可以是可执行包或实用程序包。可执行包的名称通常是 **main**,而实用程序包的名称可以是任何名称,在大多数情况下,它都是文件夹的名称。

假设我们有一个看起来像这样的目录结构。

.
|-- greet
|    `-- greet.go
|-- sample
|    `-- sample.go

我们有两个目录,即 **greet** 和 **sample**,并且每个目录在其内部都包含一个 **.go** 文件。现在,我们想使用 **greet** 目录中存在的函数。

访问来自不同包的任何特定函数的第一步是检查该函数是否确实已导出,为此,我们只需要确保函数的名称是否已大写。

例如,如果我们想使用名为 **greetings()** 的函数,那么如果函数的名称是小写,我们就无法这样做。如果我们将其更改为 **Greetings()**,那么我们就可以通过在调用函数之前加上包的名称来访问它。

下一步是在我们要使用它的代码中导入该包。我们可以在 Go 程序的 import 语句中 **import** 该包,只需确保在 **GOPATH** 变量匹配后编写整个名称。

现在,让我们检查 **greet.go** 文件中的代码。

示例 1

请考虑以下所示的代码。

package greet

import "fmt"

// Greeting ...
func Greeting() {
   fmt.Println("Welcome to TutorialsPoint!")
}

下一步是在 **sample.go** 文件中使用 **greet** 包的 **Greeting()** 函数。

输出

如果我们在上述代码上运行命令 **go run main.go**,则将在终端中获得以下输出。

Welcome to TutorialsPoint!

示例 2

请考虑以下所示的代码。

package main

import (
   greet "data-structures/recursion/greet"
   "fmt"
)

func main() {
   fmt.Println("Inside main")
   greet.Greeting()
}

输出

如果我们在上述代码上运行命令 **go run main.go**,则将在终端中获得以下输出。

Inside main
Welcome to TutorialsPoint!

更新于: 2022-02-21

4K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告