内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

詳解Go語言中的方法

下面由Golang教程欄目給大家介紹Go 語言中的方法的理解,希望對需要的朋友有所幫助!

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的細(xì)河網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!go 方法定義

方法是具有特殊接收器參數(shù)的函數(shù),即在 func 和方法名之間方法接收者。

func (s Student) GetName() string  {
    return s.name}func (s *Student) SetName(name string) {
    s.name = name}

我們可以把接收者類型為指針的成員方法叫做指針方法,把接收者類型為非指針的成員方法叫做值方法。

在你需要修改對象的時(shí)候,才必須用指針(引用傳遞),否則將所屬類型聲明為字面量即可(值傳遞)。另外避免在每個(gè)方法調(diào)用上復(fù)制該值。

type Integer intfunc (a *Integer) Increase(i Integer) {
    *a = *a + i}func main() {
    var a Integer = 2
    var b Integer = 2
    //a.Increase(b)
    //(&a).Increase(b)
    (*Integer).Increase(&a, b)
    fmt.Println(a)}

該方法并不屬于 Integer 類,而是屬于指向 Integer 的指針類型,我們在調(diào)用方法時(shí),之所以可以直接在 a 實(shí)例上調(diào)用 Increase 方法,是因?yàn)?Go 語言編譯階段會(huì)自動(dòng)將 a 轉(zhuǎn)化為對應(yīng)的指針類型 &a,所以真正調(diào)用的代碼是 (&a).Increase(b)。

其實(shí)是語法糖
type A struct {
  name string}func (a A) Name() string {
  a.name = "Hi! " + a.name  return a.name}func main() {
  a := A{name: "test"}

  fmt.Println(a.Name())

  fmt.Println(A.Name(a))}

a.Name()其實(shí)就是 A.Name(a)的語法糖,變量 a 就是所謂的方法接收者。

func NameOfA(a A) string {
  a.name = "Hi! " + a.name  return a.name}func main() {
  t1 := reflect.TypeOf(A.Name)
  t2 := reflect.TypeOf(NameOfA)

  fmt.Println(t1 == t2)// true}

go 語言中函數(shù)類型只和參數(shù)與返回值相關(guān),所以這兩個(gè)類型相等就能證明 方法本質(zhì)上就是普通的函數(shù),而接收者就是隱含的第一個(gè)參數(shù)。

分享名稱:詳解Go語言中的方法
文章出自:http://www.rwnh.cn/article4/cgjioe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)標(biāo)簽優(yōu)化、做網(wǎng)站、網(wǎng)站維護(hù)、靜態(tài)網(wǎng)站品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
浦东新区| 富阳市| 沈阳市| 本溪| 汶川县| 康平县| 法库县| 吉水县| 本溪| 延川县| 南充市| 塔河县| 革吉县| 老河口市| 海林市| 宁陵县| 武胜县| 共和县| 泸定县| 吴忠市| 三河市| 东城区| 九龙县| 介休市| 民勤县| 武汉市| 马山县| 兴业县| 芜湖县| 铁岭县| 平利县| 酒泉市| 彭州市| 丰城市| 遵化市| 山东省| 连南| 黄骅市| 奎屯市| 晋城| 长宁县|