(一)方法
Go没有类,然而,你可以定方法在类型上
一个方法是一个带有指定接收参数的函数
接收器出现的位置位于 func 关键字和方法名字的中间
package main
import (
"fmt"
)
type Student struct {
num, name string
}
func (v Student) info() string {
return "学号为:" + v.num + " / 姓名为:" + v.name
}
func main() {
v := Student{"0001", "会写Golang的科班生"}
fmt.Println(v.info())
}
(二)方法是函数
切记:一个方法只是一个带有接收参数的函数
package main
import "fmt"
type triangle struct{
a , b , c int
}
func perimeter(t triangle) int{
return t.a+t.b+t.c
}
func main(){
v := triangle{10,20,21}
fmt.Println("三角形的周长为:",perimeter(v))
}
(三)方法·续
你也可以声明一个无类型方法
你可以声明一个带有接参数的方法,且方法的类型定义在同样的包中,你不可以声明一个类型在其他包中的且带有接收参数的方法
package main
import (
"fmt"
"math"
)
type numFloat float64
func (f numFloat) T() float64{
if f>0 {
return float64(-f)
}
return float64(f)
}
func main(){
f := numFloat(math.Pi)
fmt.Println(f.T())
}