婷婷综合国产,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語言中普通函數與方法的區別分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 陵川县| 古交市| 勐海县| 海安县| 阳西县| 宣恩县| 东乡| 驻马店市| 沙洋县| 岳普湖县| 闽侯县| 衢州市| 大同市| 宽城| 东兰县| 深水埗区| 大宁县| 繁昌县| 阆中市| 丹凤县| 剑川县| 浮山县| 三穗县| 易门县| 吉木萨尔县| 丽水市| 乌拉特中旗| 平罗县| 庐江县| 雷山县| 莱西市| 正宁县| 新田县| 左权县| 静宁县| 武乡县| 河西区| 内黄县| 新乡县| 乌鲁木齐县| 调兵山市|