go --function, method

①: golang 中函数和方法有点小区分.
②: 方法的使用可以让函数具有"多态性", 改变person即可实现

-- 函数 func foo( args ) {}

package main

import "fmt"

type course struct {
    score int
}
func foo(c course) {
    fmt.Printf("score: => %d", c.score)
}
func main() {
    cou := course{
        score: 59,
    }
    foo(cou) //函数调用
}

-- 方法 func (type) foo() {}

package main

import "fmt"

type person struct {
    name string
    age  int
}
func (p person) highSchool() {  
    fmt.Printf("name: => %s\nage: => %d", p.name, p.age)
}
func main() {
    per := person{
        name: "xiaodingdang",
        age:  1000,
    }
    per.highSchool() //方法调用
}

-- 完整版 func (type) foo(args) {}

package main

import "fmt"

type person struct {
    name string
    age  int
}
type course struct {
    score int
}
func (p person) foo(c course) {
    fmt.Printf("name: %s\nage: %d\nscore: %d", p.name, p.age, c.score)
}
func main() {
    per := person{
        name: "xiaodingdang",
        age:  1000,
    }
    cou := course{
        score: 59,
    }
    per.foo(cou) //调用
}

猜你喜欢

转载自www.cnblogs.com/cheesemp/p/10571744.html