日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

go语言 方法

發(fā)布時(shí)間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 go语言 方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

go?語(yǔ)言中沒(méi)有類(lèi),但是是有方法。

方法的定義:

  func (recevier type) methodName(參數(shù)列表)(返回值列表){ }

type School struct {Name stringAddr string }func NewSchool(name, addr string) *School {return &School {Name:name,Addr:addr,} }func (s *School) GetName() string { //定義方法 s 接收者類(lèi)型 GetName方法名字return s.Name }func (s *School) GetAddr() string {return s.Addr } func testmodel(){school := NewSchool("北京大學(xué)","北京海淀區(qū)")fmt.Println(school.GetAddr()) //school.GetAddr 方法的調(diào)用fmt.Println(school.Getname())} //運(yùn)行結(jié)果 北京海淀區(qū) 北京大學(xué)

  方法和函數(shù)有什么區(qū)別呢?

函數(shù)可以說(shuō)誰(shuí)都可以調(diào)用,而方法只有接收者類(lèi)型相同的才可以調(diào)用。當(dāng)然了,定義上也是不同的,方法是包含了接收者的函數(shù)。

下面演示一個(gè)例子,說(shuō)明方法接收者值傳遞和引用傳遞的區(qū)別

package mainimport ("fmt" )type Int int //自定義類(lèi)型Intfunc (i *Int) add(a, b int) { //接收者類(lèi)型是Int類(lèi)型的指針,引用類(lèi)型*i = Int(a + b)return } func (i Int) Add(a, b int) { //接收者類(lèi)型是Int類(lèi)型,值類(lèi)型i = Int(a + b)return } func main() {var b Intvar c Intb.add(100, 200) //300 些時(shí)傳入的接者i是&b,就是變量b的地址相當(dāng)于(&b).add(100,200),add方法內(nèi)部:*(&b)=Int(100+200) 就是這個(gè)i指針指向的變量b的值改變?yōu)?00fmt.Println(b)c.Add(100,200) //值傳遞不帶回主函數(shù)fmt.Println(c) // 0}

  

轉(zhuǎn)載于:https://www.cnblogs.com/wanghaijun999/p/8157142.html

總結(jié)

以上是生活随笔為你收集整理的go语言 方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。