Go語言之方法詳解

2021-09-21 02:42:11 字數 846 閱讀 2122

方法是與物件例項繫結的特殊函式。

用於維護和展示物件自身的狀態。物件是內斂的。普通函式則專注與演算法流程,通過接受引數來完成特定的邏輯運算,並返回最終結果,方法是有關聯狀態的,函式通常是沒有的。

方法和函式定義語法區別在於前者例項接受引數,編譯器以此確定方法所屬的型別。在一些語言中儘管沒有定義,但是函式使用了隱式的傳遞this例項引數。

可以為當前包,以及除介面和指標以外的任何型別定義方法。方法同樣不支援過載,receiver引數名沒有限制。不推薦使用this和self。方法可以看做特殊的函式,那麼receiver的型別自然可以是基礎型別或指標。這會關係到呼叫時物件例項是否被複製。

不可以使用多級指標呼叫方法。

指標型別的receiver必須是合法指標(包括nil),或能獲取例項位址。

如何選擇方法的接收器型別:

匿名字段:

方法集:

表示式:

package main

import "fmt"

type n int

func main()

func (number n)tostring() string

執行結果: d

package main

import "fmt"

type n int

func main()

func (n n) value()

func (n *n) pointer()

/*執行結果:

v: 0xc04204c088, 26

p: 0xc04204c080, 26

a: 0xc04204c080, 2

*/

Go語言之GO 語言常量

相對於變數,常量是恆定不變的值,多用於定義程式執行期間不會改變的那些值。常量的宣告和變數宣告非常類似,只是把var換成了const,常量在定義的時候必須賦值。const pi 3.1415 const e 2.7182宣告了pi和e這兩個常量之後,在整個程式執行期間它們的值都不能再發生變化了。多個常...

Go語言之Go語言網路程式設計

go語言的 net 包中有乙個 tcpconn 型別,可以用來建立 tcp 客戶端和 tcp 伺服器端間的通訊通道,tcpconn 型別裡有兩個主要的函式 func c tcpconn write b byte n int,err os.error func c tcpconn read b byt...

Go語言之Go 語言迴圈語句

go 語言提供了以下幾種型別迴圈處理語句 迴圈型別 描述for 迴圈 重複執行語句塊 迴圈巢狀 在 for 迴圈中巢狀乙個或多個 for 迴圈 迴圈控制語句可以控制迴圈體內語句的執行過程。go 語言支援以下幾種迴圈控制語句 控制語句 描述break 語句 經常用於中斷當前 for 迴圈或跳出 swi...