Golang 结构体+方法
在Golang中,结构体和方法是两个重要的概念。结构体是用户定义的类型,可以由任何数量的任何类型的值组成。方法是与接收者(receiver)关联的函数,接收者可以是结构体类型的值或者指针。
以下是一些示例,展示了如何在Golang中使用结构体和方法:
- 使用结构体和方法来创建一个简单的计算器:
package main
import (
"fmt"
)
type Calculator struct {
x int
y int
}
func (calc *Calculator) Add() int {
return calc.x + calc.y
}
func (calc *Calculator) Subtract() int {
return calc.x - calc.y
}
func main() {
calc := Calculator{x: 5, y: 3}
fmt.Println("Addition:", calc.Add())
fmt.Println("Subtraction:", calc.Subtract())
}
在这个例子中,我们定义了一个名为Calculator的结构体,它有两个整型字段x和y。然后我们定义了两个方法Add和Subtract,它们是与Calculator结构体关联的方法。在main函数中,我们创建了一个Calculator的实例,并调用了这两个方法。
- 使用结构体和方法来创建一个简单的User:
package main
import (
"fmt"
)
type User struct {
name string
age int
}
func (u User) Greet() {
fmt.Printf("Hello, my name is %s and I am %d years old.\n", u.name, u.age)
}
func main() {
user := User{name: "Alice", age: 30}
user.Greet()
}
在这个例子中,我们定义了一个名为User的结构体,它有两个字段name和age。然后我们定义了一个方法Greet,它是与User结构体关联的方法。在main函数中,我们创建了一个User的实例,并调用了这个方法。
- 使用结构体和方法来创建一个简单的Employee:
package main
import (
"fmt"
)
type Employee struct {
name string
age int
employeeID int
}
func (e *Employee) SetID(id int) {
e.employeeID = id
}
func (e Employee) GetDetails() {
fmt.Printf("Name: %s, Age: %d, ID: %d\n", e.name, e.age, e.employeeID)
}
func main() {
emp := Employee{name: "Bob", age: 25}
emp.SetID(123)
emp.GetDetails()
}
在这个例子中,我们定义了一个名为Employee的结构体,它有三个字段name,age和employeeID。然后我们定义了一个方法SetID,它是与*Employee(指向Employee的指针)关联的方法。我们还定义了一个方法GetDetails,它是与Employee关联的方法。在main函数中,我们创建了一个Employee的实例,设置了employeeID,并调用了这个方法来获取Employee的详细信息。
以上就是Golang中结构体和方法的一些基本使用方法。
评论已关闭