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

主頁 > 知識庫 > Go語言中普通函數與方法的區別分析

Go語言中普通函數與方法的區別分析

熱門標簽:海外照相館地圖標注入駐 滁州自建外呼系統 旅游廁所如何電子地圖標注 外呼系統多少錢一年 經常接到推銷電話機器人的電話 工商信用卡外呼系統教程 外呼系統如何接收服務密碼 客服級電銷機器人 智能營銷軟件

本文實例分析了Go語言中普通函數與方法的區別。分享給大家供大家參考。具體分析如下:

1.對于普通函數,接收者為值類型時,不能將指針類型的數據直接傳遞,反之亦然。

2.對于方法(如struct的方法),接收者為值類型時,可以直接用指針類型的變量調用方法,反過來同樣也可以。

以下為簡單示例:

復制代碼 代碼如下:
package structTest 
 
//普通函數與方法的區別(在接收者分別為值類型和指針類型的時候) 
//Date:2014-4-3 10:00:07 
 
import ( 
    "fmt" 

 
func StructTest06Base() { 
    structTest0601() 
    structTest0602() 

 
//1.普通函數 
//接收值類型參數的函數 
func valueIntTest(a int) int { 
    return a + 10 

 
//接收指針類型參數的函數 
func pointerIntTest(a *int) int { 
    return *a + 10 

 
func structTest0601() { 
    a := 2 
    fmt.Println("valueIntTest:", valueIntTest(a)) 
    //函數的參數為值類型,則不能直接將指針作為參數傳遞 
    //fmt.Println("valueIntTest:", valueIntTest(a)) 
    //compile error: cannot use a (type *int) as type int in function argument 
 
    b := 5 
    fmt.Println("pointerIntTest:", pointerIntTest(b)) 
    //同樣,當函數的參數為指針類型時,也不能直接將值類型作為參數傳遞 
    //fmt.Println("pointerIntTest:", pointerIntTest(b)) 
    //compile error:cannot use b (type int) as type *int in function argument 

 
//2.方法 
type PersonD struct { 
    id   int 
    name string 

 
//接收者為值類型 
func (p PersonD) valueShowName() { 
    fmt.Println(p.name) 

 
//接收者為指針類型 
func (p *PersonD) pointShowName() { 
    fmt.Println(p.name) 

 
func structTest0602() { 
    //值類型調用方法 
    personValue := PersonD{101, "Will Smith"} 
    personValue.valueShowName() 
    personValue.pointShowName() 
 
    //指針類型調用方法 
    personPointer := PersonD{102, "Paul Tony"} 
    personPointer.valueShowName() 
    personPointer.pointShowName() 
 
    //與普通函數不同,接收者為指針類型和值類型的方法,指針類型和值類型的變量均可相互調用 
}

希望本文所述對大家的Go語言程序設計有所幫助。

您可能感興趣的文章:
  • Go語言中append函數用法分析
  • GO語言延遲函數defer用法分析
  • Go語言的os包中常用函數初步歸納
  • Go語言常見哈希函數的使用
  • 舉例講解Go語言中函數的閉包使用
  • Go語言里的new函數用法分析
  • Golang的os標準庫中常用函數的整理介紹
  • 深入解析golang編程中函數的用法
  • Golang學習筆記(五):函數
  • Golang教程之不可重入函數的實現方法

標簽:深圳 湘潭 運城 本溪 九江 喀什 晉城 楚雄

巨人網絡通訊聲明:本文標題《Go語言中普通函數與方法的區別分析》,本文關鍵詞  語,言中,普通,函數,與,方法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go語言中普通函數與方法的區別分析》相關的同類信息!
  • 本頁收集關于Go語言中普通函數與方法的區別分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 张家港市| 邯郸市| 杭州市| 宜川县| 休宁县| 论坛| 兴安县| 乌拉特后旗| 白沙| 渝北区| 佛冈县| 贡觉县| 紫阳县| 和林格尔县| 商丘市| 陆丰市| 根河市| 济南市| 正定县| 南陵县| 罗定市| 平谷区| 阳东县| 通山县| 松潘县| 濮阳县| 柳州市| 翁源县| 栾川县| 应城市| 遂川县| 那坡县| 大同市| 和政县| 青田县| 防城港市| 枣庄市| 安吉县| 昭通市| 三河市| 永清县|