Home > Backend Development > Golang > golang functions and methods

golang functions and methods

王林
Release: 2023-05-10 11:11:36
Original
608 people have browsed it

Golang is a statically typed programming language with the characteristics of efficiency, simplicity, safety and concurrency. Functions and methods are one of its basic components. This article will introduce the functions and methods in Golang in detail.

Function

A function is a reusable block of code that can be called multiple times in a program. In Golang, function definition uses the keyword func, and its basic syntax is as follows:

func functionName(parameters) returnType {
    // 函数体
    return result
}
Copy after login

Among them, functionName represents the function name, and parameters represents The formal parameter list of the function, returnType represents the return value type of the function, and result represents the return value of the function.

For example, here is a simple function that calculates the sum of two numbers:

func add(x int, y int) int {
    return x + y
}
Copy after login

In Golang, a function can have multiple return values. For example, here is a function that returns the minimum and maximum of two numbers:

func minMax(x int, y int) (int, int) {
    if x < y {
        return x, y
    } else {
        return y, x
    }
}
Copy after login

Certain return values ​​can be ignored by using the underscore _. For example, here is a function that returns only the minimum value:

func min(x int, y int) int {
    if x < y {
        return x
    } else {
        return y
    }
}
Copy after login

Method

A method is a special function that can only be associated with a variable of a specific type and can access that Variable properties and methods. In Golang, methods are defined using the func keyword, and their basic syntax is as follows:

func (receiver type) methodName(parameters) returnType {
    // 方法体
    return result
}
Copy after login

Among them, receiver represents the variable type, type represents the variable type name, methodName represents the method name, parameters represents the formal parameter list of the method, returnType represents the return value type of the method, result represents the return value of the method.

For example, here is a structure describing a rectangle and its method for calculating the area:

type Rect struct {
    width  float64
    height float64
}

func (r Rect) Area() float64 {
    return r.width * r.height
}
Copy after login

In Golang, methods can have pointer receivers and value receivers. Pointer receivers allow a method to modify its caller's value, whereas value receivers do not. In the above example, r Rect is a value receiver because it does not use a pointer.

For example, the following is a method with a pointer receiver that modifies the size of a rectangle:

func (r *Rect) Resize(scale float64) {
    r.width *= scale
    r.height *= scale
}
Copy after login

Note that the type of the pointer receiver is a pointer type, and using a pointer receiver will modify the caller's value .

Summary

Functions and methods are important code components in Golang. A function is a reusable block of code that can return zero, one, or more values. A method is a function that can only be associated with a variable of a specific type and can access the properties and methods of that variable. In Golang, methods can have pointer receivers and value receivers. Pointer receivers allow the method to modify the value of its caller, while value receivers do not.

The above is the detailed content of golang functions and methods. For more information, please follow other related articles on the PHP Chinese website!

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