model / person.go
package model
import "fmt"
type person struct {
Name string
age int
salary float64
}
// 写一个工厂模式,相当于构造函数
func NewPerson (name string) *person {
return &person{
Name: name,
}
}
func (p *person) SetAge(age int) {
if age > 0 && age < 150 {
p.age = age
} else {
fmt.Println("年龄不合理")
}
}
func (p *person) GetAge() int {
return p.age
}
func (p *person) SetSalary(salary float64) {
if salary >= 3000 && salary <= 30000 {
p.salary = salary
} else {
fmt.Println("薪水不合理")
}
}
func (p *person) GetSalary() float64 {
return p.salary
}
main / main.go
package main
import (
"fmt"
"go_demo/model"
)
func main() {
p := model.NewPerson("rocky")
p.SetAge(30)
p.SetSalary(20000)
fmt.Println(*p)
fmt.Println("name = ", p.Name, "age = ", p.GetAge(), "salary = ", p.GetSalary())
}