你能夠對包中的 任意 類型定義任意方法,而不單單是針對結構體。import
可是,不能對來自其餘包的類型或基礎類型定義方法。基礎
package main
import (
"fmt"
"math"
)
type MyFloat float64
//定義在告終構體上
func (f MyFloat) Abs() float64 {
if f < 0 {
return float64(-f)
}
return float64(f)
}
func main() {
f := MyFloat(-math.Sqrt2)
//直接使用結構的實例調用方法
fmt.Println(f.Abs())
}