Go语言程序演示提升字段的用法
在Go语言中,提升字段是指嵌入到另一个结构体内的结构体,其字段也可以通过嵌入它们的结构体访问。本文将介绍三种不同的方法来演示使用提升字段,包括使用和不使用指针的方法。
使用指针
在这个例子中,我们将使用指针来演示提升字段。字段名将通过指针设置,信息将使用点表示法打印。
算法
步骤1 − 创建一个main包,并在程序中声明fmt(格式化包),其中main生成可执行代码,fmt帮助格式化输入和输出。
步骤2 − 创建一个Person结构体,包含两个字段:name(字符串类型)和age(整型)。
步骤3 − 然后,创建一个Employee结构体,其中包含一个提升字段*Person和一个整型id,这意味着Person的字段可以通过指针访问。
步骤4 − 创建一个main函数,设置Person结构体中的字段值,然后使用指针将Person结构体值赋值给Employee结构体。
步骤5 − 使用fmt包中的Println函数在控制台上打印所有员工信息。
示例
以下示例演示如何创建Go语言程序来演示使用指针的提升字段。
package main
import "fmt"
type Person struct {
name string
age int
}
type Employee struct {
*Person
id int
}
func main() {
ps := &Person{name: "Geneva", age: 28}
emp_info := &Employee{Person: ps, id: 442}
fmt.Println("The Employee name is:", emp_info.name)
fmt.Println("The Employee age is:", emp_info.age)
fmt.Println("The Employee id is:", emp_info.id)
}
输出
The Employee name is: Geneva The Employee age is: 28 The Employee id is: 442
不使用指针
在这种方法中,将创建一个person和employee结构体,其中employee结构体将包含提升字段,其字段的值将在main函数中设置,并使用点表示法和字段名打印。
算法
步骤1 − 创建一个main包,并在程序中声明fmt(格式化包),其中main生成可执行代码,fmt帮助格式化输入和输出。
步骤2 − 创建一个Person结构体,包含两个字段:name(字符串类型)和age(整型)。
步骤3 − 然后,创建一个Employee结构体,包含两个字段:一个整型id和一个提升字段person。
步骤4 − 现在,创建一个main函数,在这个函数中创建一个employee结构体,并为提升字段Person的name和age提供值,并为id赋值。
步骤5 − 最后,使用emp_info.name、emp_info.age和emp_info.id语法访问Person的name和age。
步骤6 − 使用fmt包中的Println函数(其中ln表示换行)在控制台上打印所有上述信息。
示例
在下面的示例中,我们将了解如何创建Go语言程序来演示不使用指针的提升字段。
package main
import "fmt"
type Person struct {
name string
age int
}
type Employee struct {
Person // Promoted field
id int
}
func main() {
emp_info := Employee{
Person: Person{
name: "Veronica",
age: 36,
},
id: 600,
}
fmt.Println("The Employee name is:", emp_info.name)
fmt.Println("The Employee age is:", emp_info.age)
fmt.Println("The Employee id is:", emp_info.id)
}
输出
The Employee name is: Veronica The Employee age is: 36 The Employee id is: 600
使用Animal和Dog结构体
在这个示例中,我们将编写一个Go语言程序来演示使用Animal和Dog结构体的提升字段。Animal结构体是Dog结构体中的提升字段。
算法
步骤1 − 创建一个main包,并在程序中声明fmt(格式化包),其中main生成可执行代码,fmt帮助格式化输入和输出。
步骤2 − 创建一个Animal结构体,包含两个字段:name(字符串类型)和age(整型)。
步骤3 − 然后,创建一个Dog结构体,其中包含一个提升字段Animal和另一个字符串类型的字段Breed。
步骤4 − 创建一个main函数,在其中设置提升字段的值并将其存储在Dog_struct中。
步骤5 − 使用存储变量和点表示法访问字段。
步骤6 − 然后,使用相同的表示法访问提升字段。
步骤7 − 使用fmt包中的Println函数(其中ln表示换行)执行打印语句。
示例
以下示例演示如何创建Go语言程序来演示使用Animal和Dog结构体的提升字段。
package main
import "fmt"
type Animal struct {
name string
age int
}
type Dog struct {
Animal
Breed string
}
func main() {
Dog_struct := Dog{
Animal: Animal{
name: "pommy",
age: 6,
},
Breed: "Labrador retriever",
}
fmt.Println(Dog_struct.name)
fmt.Println(Dog_struct.age)
fmt.Println(Dog_struct.Breed)
fmt.Println(Dog_struct.Animal.name)
fmt.Println(Dog_struct.Animal.age)
}
输出
pommy 6 Labrador retriever pommy 6
结论
我们编译并执行了演示提升字段的程序,使用了三个示例。在第一个示例中,提升字段值在结构体中设置,在第二个示例中,它们通过指针设置,在第三个示例中,我们使用了Animal结构体。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP