Golang is a very popular programming language developed by Google. Its unique syntax and powerful performance make it widely popular. In Golang, method declaration is a very important basic knowledge as it plays an important role in object-oriented programming.
In Golang, we can use methods to extend the functionality of types. Methods can be defined in a structure or in the source code file of any type (even a basic type). In this article, we will explore the basics of Golang method declarations, including method syntax, parameter and return value types, etc.
Method syntax
In Golang, we can use the following syntax to declare methods:
func (t Type) methodName(parameterList) (returnTypeList) {
// 方法体
}
Among them, func is the keyword used to declare the method, Type is the type of the receiver parameter, methodName is the name of the method, parameterList is the parameter list of the method, and returnTypeList is the return of the method. List of values.
In the above syntax, Type can be a structure type or other types. The receiver parameter is the type on which the method is defined, which means we can access the method using the instance on which the method is called. If we define a struct type, we can use it to call methods like this:
type Rectangle struct {
width, height float64
}
func (r Rectangle) area () float64 {
return r.width * r.height
}
r := Rectangle{3, 4}
fmt.Println(r.area())
In the above code , we define a Rectangle type and an area() method. The receiver parameter of the area() method is of Rectangle type. We create a Rectangle instance r and use it to call the area() method to calculate the area of the rectangle.
Then take a look at the parameter list and return value list. The parameter list contains zero or more parameters, and the type of these parameters can be any valid Golang type. The return value list represents the return value of the method, which consists of 0 or more return values. The type of these return values can also be any valid Golang type.
Here is an example that demonstrates how to define a method with two parameters and a return value:
type Person struct {
name string age int
}
func (p Person) fullName(firstName string, lastName string) string {
p.name = firstName + " " + lastName return p.name
}
person := Person{"Jerry", 28}
fmt.Println( person.fullName("John", "Doe"))
In this example, we define a Person type and a fullName() method. The fullName() method has two parameters: firstName and lastName. It also has a return value of type string. In the fullName() method, we combine firstName and lastName into a complete name, then assign it to the name field in the Person structure, and return this name.
Parameter and return value types
The parameter list and return value list of Golang methods are very flexible, they can be any valid Golang data type. In a method definition, the parameters and return value types can be the same or different. Let's take a look at the following example:
type Student struct {
name string age int grade int addresses []string
}
func (s *Student) changeName(name string) {
s.name = name
}
func (s *Student) getAddresses() []string {
return s.addresses
}
student := Student{"Joe", 12, 6, [] string{"Beijing", "Shanghai"}}
fmt.Println(student.name)
student.changeName("Tom")
fmt.Println(student.name)
addresses := student.getAddresses()
fmt.Println(addresses)
In the above code, we define a Student structure and two methods: changeName() and getAddresses(). The receiver parameter of the changeName() method is a pointer to the Student structure, which has no return value, while the receiver parameter of the getAddresses() method is a pointer to the Student structure, and its return value is a string array.
In the changeName() method, we set the name field of the Student instance to a new value, and in the getAddresses() method, we directly return the addresses field of the Student instance.
Summary
As mentioned in this article, method declaration is a very important part of Golang programming. Among them, the method syntax, parameters and return value types are the three aspects we need to pay attention to. By understanding the definition and use of Golang methods, we can better utilize Golang's excellent features and develop more efficient and excellent applications.
The above is the detailed content of golang method declaration. For more information, please follow other related articles on the PHP Chinese website!