Go速成無壓力【十一】:方法 · 上(Methods)

(一)方法

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())	
}

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章