此示例旨在演示指针的声明和访问指针指向的变量的值。
以下是我们应用程序的目录结构。
├── parent
│ ├── go.mod
│ ├── main.go
│ └── child
│ └── child.go
进入父目录并运行以下命令以创建名为 parent 的go模块。
go mod init parent
上面的命令将创建一个名为go.mod的文件。
#parent\main.go
package main
import (
"fmt"
c "parent/child"
)
func main() {
a := &c.Data
fmt.Println("Address of Data is", a)
fmt.Println("Value of Data is", *a)
*a++
c.PrintData()
}
我们将子包别名为c。&运算符用于获取变量的地址。在主函数中,我们现在可以使用上面的别名访问数据的地址。我们增加a的值并打印它的值。
在子文件夹中创建一个文件child.go。子文件夹中的文件应以行包子包开头,因为它属于子包。
# parent\child\child.go
package child
import "fmt"
var Data = 10
func PrintData() {
fmt.Println("Value of Data is", Data)
}
parent>go run main.go
如果运行该程序,将获得以下输出。
Address of Data is 0x563230
Value of Data is 10
Value of Data is 11