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