怪奇物语

怪奇物语

首页 新随笔 联系 管理

golang 函数和方法的区别

一句话总结就是,func直接函数名就是函数,否则就是方法.
至于是谁的的方法,看函数前面有没有*号的指向.

golang中函数第一等公民,所以以函数优先.

demo\main.go


package main

import "fmt"

// 定义一个结构体
type Student struct {
	name string
	age  int
}

// 定义一个函数,用于打印学生信息,它不依赖于特定的 Student 类型实例
func printStudentInfo(s Student) {
	fmt.Printf("学生姓名:%s,年龄:%d\n", s.name, s.age)
}

// 定义一个方法,用于修改学生的年龄,它与 Student 类型关联
// ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
// func直接函数名就是函数,否则就是方法
func (s *Student) setAge(newAge int) {
	s.age = newAge
}

func main() {
	// 创建一个 Student 实例
	stu := Student{name: "Alice", age: 20}
	// 调用函数
	printStudentInfo(stu)
	// 调用方法
	stu.setAge(21)
	printStudentInfo(stu)
}

demo\main_test.go


package main

import "testing"

func TestMain(t *testing.T) {
	t.Run("testMain", func(t *testing.T) {
		main()
	})
}

posted on 2025-01-11 22:48  超级无敌美少男战士  阅读(10)  评论(0)    收藏  举报