婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解golang中的method

詳解golang中的method

熱門標簽:湛江crm外呼系統排名 宿遷便宜外呼系統代理商 不封卡外呼系統 地圖標注免費定制店 寧波語音外呼系統公司 鄭州智能語音電銷機器人價格 上海極信防封電銷卡價格 仙桃400電話辦理 重慶慶云企業400電話到哪申請

什么是method(方法)?method是函數的另外一種形態,隸屬于某個類型的方法。

method的語法:

func (r Receiver) funcName (parameters) (result)

receiver可以看作是method的第一個參數,method并且支持繼承和重寫。

  • Go中雖沒有class,但依舊有method
  • 通過顯示說明receiver來實現與某個類型的結合
  • 只能為同一個包中的類型定義方法
  • receiver可以是類型的值或者指針
  • 不存在方法重載
  • 可以使用值或指針來調用方法,編譯器會自動完成轉換
  • 從某種意義上來說,方法是函數的語法糖,因為receiver其實就是方法所接收的第一個參數(Method Value vs. Method Expression)
  • 如果外部結構和嵌入結構存在同名方法,則優先調用外部結構的方法
  • 類型別名不會擁有底層類型所附帶的方法
  • 方法可以調用結構中的非公開字段

go version go1.12

/**
 * 什么是method(方法)?method是函數的另外一種形態,隸屬于某個類型的方法。
 * method的語法:func (r Receiver) funcName (parameters) (result)。
 * receiver可以看作是method的第一個參數,method并且支持繼承和重寫。
 */
package main

import (
  "fmt"
)

type Human struct {
  name string
  age int
}

// 字段繼承
type Student struct {
  Human // 匿名字段
  school string
}
type Employee struct {
  Human  // 匿名字段
  company string
}

// 函數的另外一種形態:method,語法:func (r Receiver) funcName (parameters) (result)
// method當作struct的字段使用
// receiver可以看作是method的第一個參數
// 指針作為receiver(接收者)和普通類型作為receiver(接收者)的區別是指針會對實例對象的內容發生操作,
// 普通類型只是對副本進行操作
// method也可以繼承,下面是一個匿名字段實現的method,包含這個匿名字段的struct也能調用這個method
func (h *Human) Info() {
  // method里面可以訪問receiver(接收者)的字段
  fmt.Printf("I am %s, %d years old\n", h.name, h.age)
}

// method重寫,重寫匿名字段的method
// 雖然method的名字一樣,但是receiver(接收者)不一樣,那么method就不一樣
func (s *Student) Info() {
  fmt.Printf("I am %s, %d years old, I am a student at %s\n", s.name, s.age, s.school)
}
func (e *Employee) Info() {
  fmt.Printf("I am %s, %d years old, I am a employee at %s\n", e.name, e.age, e.company)
}
func main() {
  s1 := Student{Human{"Jack", 20}, "tsinghua"}
  e1 := Employee{Human{"Lucy", 26}, "Google"}
  // 調用method通過.訪問,就像struct訪問字段一樣
  s1.Info()
  e1.Info()
}

以上就是詳解golang中的method的詳細內容,更多關于golang中的method的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 詳解Golang使用MongoDB通用操作
  • Golang 如何判斷數組某個元素是否存在(isset)
  • golang獲取網卡信息操作
  • golang判斷net.Conn 是否已關閉的操作
  • 解決golang json解析出現值為空的問題
  • golang 獲取字符串長度的案例
  • Golang獲取目錄下的文件及目錄信息操作
  • 對Golang中的runtime.Caller使用說明
  • 如何判斷Golang接口是否實現的操作

標簽:安康 遼寧 儋州 物業服務 電子產品 西雙版納 海南 青海

巨人網絡通訊聲明:本文標題《詳解golang中的method》,本文關鍵詞  詳解,golang,中的,method,詳解,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解golang中的method》相關的同類信息!
  • 本頁收集關于詳解golang中的method的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 台安县| 奉贤区| 迭部县| 阳朔县| 怀来县| 兴和县| 阳信县| 和林格尔县| 大足县| 涟水县| 西昌市| 义马市| 陆良县| 肥城市| 荃湾区| 米林县| 天长市| 萨嘎县| 松原市| 越西县| 宁陵县| 黄冈市| 长丰县| 浦东新区| 峡江县| 庐江县| 云南省| 台安县| 雷波县| 剑河县| 新竹县| 漳平市| 昔阳县| 黔西县| 介休市| 唐山市| 淅川县| 北流市| 加查县| 伊宁市| 介休市|