编写程序过程中,经常会用到结构。本程序给出了使用结构的简单实例。
Go语言程序:
// struct project main.go
package main
import (
"fmt"
)
const N int = 10
type Node struct {
figure int
digits1 [N]int
digits2 [N]int
sflag bool
}
func main() {
var n Node
n.figure = 1
n.digits1[0] = 1
n.digits2[0] = 1
n.sflag = true
n2 := n
n2.digits1[n2.figure] = 2
n2.digits2[n2.figure] = 2
n2.figure++
n2.sflag = false
n3 := n2
n3.digits1[n2.figure] = 3
n3.digits2[n2.figure] = 4
n3.figure++
output_node(&n)
output_node(&n2)
output_node(&n3)
}
func output_node(n *Node) {
fmt.Printf("Figure =%d\n", n.figure)
fmt.Printf("Array1: ")
for i := n.figure - 1; i >= 0; i-- {
fmt.Printf("%d ", n.digits1[i])
}
fmt.Println("")
fmt.Printf("Array2: ")
for i := n.figure - 1; i >= 0; i-- {
fmt.Printf("%d ", n.digits2[i])
}
fmt.Println("")
if n.sflag {
fmt.Printf("SFlag=true\n")
} else {
fmt.Printf("SFlag=false\n")
}
fmt.Println("")
}
程序运行结果:
Figure =1
Array1: 1
Array2: 1
SFlag=true
Figure =2
Array1: 2 1
Array2: 2 1
SFlag=false
Figure =3
Array1: 3 2 1
Array2: 4 2 1
SFlag=false
程序说明:
1.不论指针还是变量,取结果元素都使用"."运算符,比较方便。
2.参数传递时,结构通常是传指针。