站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

golang支持同名方法嗎

golang支持同名方法。Go語(yǔ)言中允許在同一包中創(chuàng)建兩個(gè)或多個(gè)具有相同名稱的方法,但是這些方法的接收者必須具有不同的類型;注該功能在Go函數(shù)中不可用,這意味著不允許用戶在同一包中創(chuàng)建相同名稱的方法,如果嘗試這樣做,則編譯器將拋出錯(cuò)誤。

golang支持同名方法嗎

php入門到就業(yè)線上直播課:進(jìn)入學(xué)習(xí)
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用

本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。

Go 同名方法

在Go語(yǔ)言中,允許在同一包中創(chuàng)建兩個(gè)或多個(gè)具有相同名稱的方法,但是這些方法的接收者必須具有不同的類型。該功能在Go函數(shù)中不可用,這意味著不允許您在同一包中創(chuàng)建相同名稱的方法,如果嘗試這樣做,則編譯器將拋出錯(cuò)誤。

語(yǔ)法:

func(reciver_name_1 Type) method_name(parameter_list)(return_type){     // Code } func(reciver_name_2 Type) method_name(parameter_list)(return_type){     // Code }
登錄后復(fù)制

讓我們借助示例來討論這個(gè)概念:

范例1:

package main     import "fmt"    //創(chuàng)建結(jié)構(gòu)體 type student struct {      name   string      branch string  }     type teacher struct {      language string      marks    int }     //名稱相同的方法,但有不同類型的接收器 func (s student) show() {         fmt.Println("學(xué)生姓名:", s.name)      fmt.Println("Branch: ", s.branch)  }     func (t teacher) show() {         fmt.Println("Language:", t.language)      fmt.Println("Student Marks: ", t.marks)  }     func main() {         // 初始化結(jié)構(gòu)體的值     val1 := student{"Rohit", "EEE"}         val2 := teacher{"Java", 50}         //調(diào)用方法     val1.show()      val2.show()  }
登錄后復(fù)制

輸出:

golang支持同名方法嗎

用法說明:在上面的示例中,我們有兩個(gè)相同的名稱方法,即show(),但接收器的類型不同。這里,第一個(gè)show()方法包含s student類型的接收者,第二個(gè)show()方法包含t teacher類型的接收者。在main()函數(shù)中,我們借助各自的結(jié)構(gòu)體變量來調(diào)用這兩種方法。如果嘗試使用相同類型的接收器創(chuàng)建此show()方法,則編譯器將拋出錯(cuò)誤。

范例2:

//創(chuàng)建相同名稱的方法 //非結(jié)構(gòu)類型的接收器 package main     import "fmt"    type value_1 string  type value_2 int    //創(chuàng)建具有相同名稱的函數(shù) //不同類型的非結(jié)構(gòu)接收器 func (a value_1) display() value_1 {         return a + ".com" }     func (p value_2) display() value_2 {         return p + 298  }     func main() {         //初始化值      res1 := value_1("nhooo")      res2 := value_2(234)         // 打印顯示結(jié)果     fmt.Println("Result 1: ", res1.display())      fmt.Println("Result 2: ", res2.display())  }
登錄后復(fù)制

輸出:

golang支持同名方法嗎

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
国产精品网址在线观看你懂的| 国产精品免费小视频| 久久精品视频免费| 国产VA免费精品高清在线| 99热在线日韩精品免费| 尤物国午夜精品福利网站| 99久久国产热无码精品免费| 91精品天美精东蜜桃传媒入口 | 91精品啪在线观看国产18| 国产亚洲美女精品久久久久狼| 久久www免费人成精品香蕉| 无码人妻精品一区二区蜜桃百度| 日韩精品中文字幕无码一区| 国产精品一区电影| 精品一区二区久久久久久久网精| 欧美精品VIDEOSEX性欧美| 国产精品久线观看视频| 国产精品揄拍一区二区久久| 亚洲另类春色国产精品| 久久亚洲精品无码VA大香大香| 99re热这里只有精品视频| 少妇人妻精品一区二区三区| 久久久久久国产精品mv| 午夜精品乱人伦小说区| 亚洲国产精品久久久久久| 亚洲国产精品婷婷久久| 日韩人妻无码精品久久免费一| 久久99精品久久| 少妇人妻偷人精品无码视频| 日韩精品一区二区三区色欲AV | 无码精品A∨在线观看十八禁 | 亚洲精品乱码久久久久久蜜桃图片| 国产精品高清视亚洲精品| 精品一二三区久久aaa片| 91精品日韩人妻无码久久不卡 | 成人国产精品2021| 日韩精品一区二区三区中文版 | 精品在线观看免费| 国产精品日韩一区二区三区| 国产日韩在线观看视频网站| 色哟哟国产精品免费观看|