(一)方法
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())
}