Go语言学习函数+结构体+方法+接口
函数
函数是Go语言中的一等公民,可以像普通变量一样被传递、赋值和使用。函数的定义方式如下:
func 函数名(参数列表) (返回值列表) {
//函数体
}
其中,参数列表和返回值列表可以为空。
示例代码:
package main
import "fmt"
func add(a, b int) int {
return a + b
}
func main() {
sum := add(1, 2)
fmt.Println(sum)
}
结构体
Go语言中的结构体是一种用户自定义的数据类型,它可以包含多个属性(字段),可以被同一包内的其他函数和方法访问和修改。结构体的定义方式如下:
type 结构体名 struct {
字段1 类型1
字段2 类型2
...
}
示例代码:
package main
import "fmt"
type Student struct {
name string
age int
address string
}
func main() {
s := Student{
name: "Tom",
age: 18,
address: "Beijing",
}
fmt.Println(s)
}
方法
方法是结构体特有的函数,可以访问结构体的属性并对其进行操作。方法的定义方式如下:
func (接收器变量 接收器类型) 方法名(参数列表) (返回值列表) {
//方法体
}
其中,接收器类型可以是结构体类型或者结构体指针类型,称为值接收器和指针接收器。
示例代码:
package main
import "fmt"
type Student struct {
name string
age int
address string
}
func (s Student) getInfo() string {
return fmt.Sprintf("Name: %s, Age: %d, Address: %s", s.name, s.age, s.address)
}
func main() {
s := Student{
name: "Tom",
age: 18,
address: "Beijing",
}
fmt.Println(s.getInfo())
}
接口
接口是一种约定,规定了一组方法的名称、参数列表和返回值列表,并且不指定方法的实现。任何实现了接口的类型都可以称之为该接口类型的变量。接口的定义方式如下:
type 接口名 interface {
方法1(参数列表) (返回值列表)
方法2(参数列表) (返回值列表)
...
}
示例代码:
package main
import "fmt"
type Math interface {
Add(int, int) int
Sub(int, int) int
}
type MathImpl struct {
}
func (m MathImpl) Add(a, b int) int {
return a + b
}
func (m MathImpl) Sub(a, b int) int {
return a - b
}
func main() {
var math Math
math = MathImpl{}
fmt.Println(math.Add(1, 2))
fmt.Println(math.Sub(3, 2))
}
示例说明
以上示例代码分别演示了函数、结构体、方法和接口的使用方法。
函数示例中,定义了一个添加函数,传入两个整数参数并返回它们的和。
结构体示例中,定义了一个学生结构体,包含姓名、年龄和地址三个属性,并在主函数中对其进行实例化并输出。
方法示例中,给学生结构体添加了方法getInfo(),返回格式化后的信息字符串,包含姓名、年龄和地址三个属性的值,并在主函数中输出。
接口示例中,定义了一个数学接口,包含加法和减法两个方法,并以数学实现为例,演示了如何实现一个接口,并使用该接口的变量调用对应的方法。
通过以上示例代码,可以完整学习Go语言中的函数、结构体、方法和接口,为之后的Go语言开发打下坚实的基础。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Go语言学习函数+结构体+方法+接口 - Python技术站