Golang程序实现结构体


2022年3月17日, Learn eTutorial
1554

为了更好地理解这个示例,我们始终建议您学习下面列出的 Golang 编程 的基础主题

Go编程语言中的结构体是什么?

Golang中的结构体(struct)是一种用户定义类型,包含命名字段/属性的集合。这意味着它将可能不同类型的项组合成一个单一类型。通常,这与面向对象编程中的类的概念几乎相同。你可以说结构体是一种轻量级类,它支持组合而不是继承。通过使用struct关键字,你可以在Go中定义一个结构体。


type struct_name struct {
// fields
}

这里的type关键字用于引入一个新类型。其后是类型名称。关键字struct用于表示我们正在定义一个结构体类型,并在花括号内列出字段。这里每个字段都有一个名称和一个类型。

 

如何在Go中实现结构体

在本节中,我们将重点关注结构体。例如,员工记录包含ID、姓名、职位和薪资。将这五个属性组合成一个单一的Employee结构体是合理的。通过使用结构体概念,你可以读取和显示员工记录。

下面的程序将解释如何在Go编程中创建结构体,创建实例,为结构体实例设置值,以及读取和打印结构体实例。

这里我们可以使用内置函数fmt.scanln()来读取输入值。输出可以通过使用内置函数fmt.println()来显示。这两个内置函数都定义在fmt包下。为了使用这些函数,我们应该将“fmt”包导入到我们的程序中。

下面是在Go程序中实现结构体所使用的步骤。

算法 

步骤 1:开始
步骤2:导入fmt包
步骤3:定义一个结构体'Employee',包括员工的ID、姓名、职位和薪资。
步骤4:打开main()函数开始程序,GO程序执行从main()开始
步骤5:声明结构体变量emp1和emp2。
步骤6:使用emp1和emp2读取员工详细信息。
步骤7:在屏幕上显示员工详细信息。
步骤8:退出

Golang 源代码

                                          package main                                                                 
                                                                             
import (                                                                     
 "fmt"                                                                    
)                                                                            
                                                                             
//define a struct 'Employee'                                                  
type Employee struct {                                                        
 id int                                                                   
 name string    
               post string                                                          
 salary  int                                                                
}                                                                            
                                                                             
func main() {                                                                
 var emp1 Employee                                                     
 emp2 := new(Employee)                                                 
                                                                             
 // setting values                                                        
 emp1.id = 101                                                          
 emp1.name = "Employee 1"   
  emp1.post = "manager"                                                                                         
 emp1.salary = 60000                                                      
                                                                             
 emp2.id = 102                                                          
 emp2.name = "Employee 2"   
  emp2.post = "Administrator"                                                                                         
 emp2.salary = 30000    
                                    
 // displays Employee details                                              
 fmt.Println("Employees Details")                                           
 fmt.Println("----------------")                                          
 fmt.Printf("Id: %d\n", emp1.id)                                      
 fmt.Printf("Name: %s\n", emp1.name)      
    fmt.Printf("Post: %s\n", emp1.post)  
    fmt.Printf("Salary: %d\n", emp1.salary)                              
   
 fmt.Println("----------------")                                          
 fmt.Printf("Id: %d\n", emp2.id)                                      
 fmt.Printf("Name: %s\n", emp2.name)      
    fmt.Printf("Post: %s\n", emp2. post)  
    fmt.Printf("Salary: %d\n", emp2. salary)                              
}         

                                      

输出

Employees Details
----------------
Id: 101
Name: Employee 1
Post: manager
Salary: 60000
----------------
Id: 102
Name: Employee 2
Post: Administrator
Salary: 30000