Home > Backend Development > Golang > Object-oriented programming practice in Go language

Object-oriented programming practice in Go language

王林
Release: 2024-04-04 08:45:01
Original
899 people have browsed it

In Go, object-oriented programming is implemented using structures and methods: define a structure to represent a custom data type and contain data fields. Define methods to manipulate and modify structure instances. Methods are associated by the receiver type (that is, the structure). Use structures and methods to manage data, such as creating instances, accessing information, and modifying data.

Object-oriented programming practice in Go language

Object-oriented programming practice in Go language

In Go language, object-oriented programming (OOP) uses structures and methods to fulfill. This article will guide you in using Go language for OOP programming and deepen your understanding through practical cases.

Structure

Structure is a mechanism for defining custom data types in the Go language. It contains a set of data fields of the same type. Create a structure as shown below:

type Person struct {
    name string
    age int
}
Copy after login

This structure defines a type named Person, which contains two fields: name(String ) and age (integer type).

Methods

Methods are functions associated by the receiver type (i.e. structure). They are used to manipulate and modify structure instances. Define a method for the structure as follows:

func (p *Person) Greet() {
    fmt.Printf("你好,我的名字是 %s\n", p.name)
}
Copy after login

This method receives a Person structure pointer p as a parameter and uses p Access structure fields. It prints a welcome message with the value of the name field of the structure.

Practical Case: Employee Management

Now, let’s take a look at a practical case to show how to use OOP to manage employee information in Go.

// 定义员工结构体
type Employee struct {
    name string
    salary int
    manager *Employee  // 指向经理的指针
}

// 为员工结构体定义方法
func (e *Employee) GetSalary() int {
    return e.salary
}

func (e *Employee) Promote(salary int) {
    e.salary = salary
}

func main() {
    // 创建员工实例
    ceo := Employee{name: "Tim", salary: 100000}
    manager := Employee{name: "Bob", salary: 50000, manager: &ceo}
    employee := Employee{name: "John", salary: 20000, manager: &manager}

    // 访问员工信息
    fmt.Printf("CEO 的薪水:%d\n", ceo.GetSalary())
    fmt.Printf("经理的薪水:%d\n", manager.GetSalary())
    fmt.Printf("员工的薪水:%d\n", employee.GetSalary())

    // 提升经理的薪水
    manager.Promote(60000)

    fmt.Printf("经理的新薪水:%d\n", manager.GetSalary())
}
Copy after login

In this example, we create three employee instances: CEO, manager, and employee. Each employee has a name and salary field, and the manager also has a pointer to their manager. We also defined methods for the structure to obtain and modify the employee's salary.

In the main function, we create these employee instances and access their information. We also show how to increase a manager's salary and print out his new salary.

The above is the detailed content of Object-oriented programming practice in Go language. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template