Golang程序 创建类和对象

在这篇文章中,我们将学习如何创建类和对象。

  • 结构 – Go语言没有类。要在go编程语言中创建一个对象,我们可以指定结构并在其中存储键值对。结构是一种用户定义的数据类型,用于将数据存储在一起。这样存储的值可能具有相同或不同的数据类型。

语法

定义结构的语法如下

type name_of_struct struct {
   name_1 type_1
   name_2 type_2
   name_3 type_3
   name_4 type_4 …
}

一个新的结构以 type 关键字开始,说明我们正在定义一个新的类型,然后是结构的名称和 struct 关键字,说明我们正在定义一个新的结构。一个结构可以将相同或不同数据类型的不同值存储在一起。

  • 对象 – 对象是用来将数据以键值对的形式封装在一起。有不同的方法来创建一个对象。我们将在本文中讨论其中一些。

例子1

Golang程序创建一个类的代码 –

package main

// fmt package allows us to print anything on the screen
import "fmt"

// defining a structure with name myStrunct
type Student struct {
   // defining values of struct
   name        string
   rollNo      int
   admissionNo int
   class       int
}

// function to student data type
func (s Student) printDetails() {
   fmt.Println("Student Details...\n")

   // printing the structure details
   fmt.Println("Student name is:", s.name)
   fmt.Println("Student Admission number is:", s.admissionNo)
   fmt.Println("Student Class is:", s.class)
   fmt.Println("Student Roll number is:", s.rollNo)
}

func main() {
   // defining a variable name stud_1 of type Student
   var stud_1 = Student{name: "Nitin Sharma", rollNo: 21, class: 7, admissionNo: 2485}

   // calling the printDetails() function to print the structure details on the screen.
   stud_1.printDetails()
}

输出

Student Details...

Student name is: Nitin Sharma
Student Admission number is: 2485
Student Class is: 7
Student Roll number is: 21

上述代码的说明

  • 首先,我们需要导入fmt包。这个包允许我们在屏幕上打印任何东西。
  • 然后,我们定义了一个名为Student的结构,以字符串和整数的形式存储学生的证书,如姓名、卷号、班级和入学号。

  • 然后我们定义了我们的结构应该具有的属性,以及它应该采取的数据类型。



  • 接下来我们定义了一个函数,该函数以student类型的变量为参数,使用fmt.Println()函数在屏幕上打印出学生的详细信息。

  • 调用main()函数。

  • 创建一个stud_1变量并在其中存储学生类型的键值对。

  • 调用printDetails()函数

  • 使用fmt.Println()函数在屏幕上打印详细信息。

示例2:创建对象的go lang程序

一旦我们得到我们的结构,下一个任务就是从中创建对象。有不同的方法可以从结构中创建对象。

方法一:向结构体传递逗号分隔的值

一旦我们得到了我们的结构,下一个任务就是在其中创建对象。有不同的方法可以从结构中创建对象。

例子

创建对象的最简单方法是按照我们在结构中定义的顺序直接传递数值。

package main

import "fmt"

// fmt package allows us to print anything on the screen

// defining a structure named Employee and adding some data to it
type Employee struct {
   Name        string
   Age         int
   Designation string
   Salary      int
}

// calling the main() function
func main() {
   // creating an object named newEmp by passing various comma
   //separated values to it.
   var newEmp = Employee{"Nitin", 27, "Developer", 40}

   // printing the age of the employee from the newEmp object
   fmt.Println("The age of the employee is:", newEmp.Age)

   // printing the name of the employee from the newEmp object
   fmt.Println("The name of the employee is:", newEmp.Name)
}

输出

The age the  of employee is: 27
The name the  of employee is: Nitin

说明

  • 首先,我们导入 fmt 包,它允许我们在屏幕上打印任何东西。
  • 接下来,我们创建一个名为Employee的结构,并在其中定义键,如姓名、年龄、工资等。

  • 然后,我们调用main()函数。

  • 从Employee类中创建一个名为newEmp的对象,并将数值以逗号分隔的方式传递给键值。

  • 现在我们的newEmp对象包含了所有必要的数据,我们可以使用fmt.Println()函数在屏幕上打印。

  • 要访问对象的任何属性,我们需要在指定对象的名称之后使用”. “符号,然后是我们希望访问的属性。

注意 - 如果我们在创建对象时没有指定结构中定义的任何属性的值,那么将为这些属性选择一些默认值。下面是一些默认值。

  • 字符串值默认为””,一个空字符串。
  • 整数值默认得到0作为输入值。

  • 布尔值默认存储为false。

方法2:用一个新的关键字创建一个对象

例子

另一种流行的创建对象的方法是使用一个新的关键字。让我们看一个例子,以便更清楚地了解。

package main

import "fmt"

// fmt package allows us to print anything on the screen

// defining a structure named Employee and adding some data to it
type Employee struct {
   Name        string
   Age         int
   Designation string
   Salary      int
}

// calling the main() function
func main() {
   // creating an empty object named newEmp.
   var newEmp = new(Employee)

   // assigning values to newEmp object
   newEmp.Name = "Ram"
   newEmp.Age = 30

   // printing the age of the employee from the newEmp object
   fmt.Println("The age of employee is:", newEmp.Age)

   // printing the name of the employee from the newEmp object
   fmt.Println("The name of employee is:", newEmp.Name)

   // printing the default values
   fmt.Println("The default values for salary is:", newEmp.Designation, newEmp.Salary)

}

输出

The age of employee is: 30
The name of employee is: Ram
The default values for salary is:  0

总结

我们已经成功地编译和执行了Go语言的代码,创建了一个类和一个对象,并举了一些例子。