首页 > 代码库 > A Tour of Go Methods continued

A Tour of Go Methods continued

In fact, you can define a method on any type you define in your package, not just structs.

You cannot define a method on a type from another package, or on a basic type.

package main import (    "fmt"    "math")type MyFloat float64func (f MyFloat) Abs() float64 {    if f < 0 {        return float64(-f)    }    return float64(f)}func main() {    fmt.Println(math.Sqrt2)    f := MyFloat(-math.Sqrt2)    fmt.Println(f.Abs())}

很像OC中的类别

A Tour of Go Methods continued