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

2022-09-24 23:36:11 字數 1027 閱讀 3799

1.對於普通函式,接收者為值型別時,不能將指標型別的資料直接傳遞,反之亦然。

2.對於方法(如struct的方法),接收者為值型別時,可以直接用指標型別的變數呼叫方法,反過來同樣也可以。

以下為簡程式設計客棧單示例:

複製** **如下:

package structtest 

//普通函式與方法的區別(在接收者分別為值型別和指標型別的時候) 

//date:2014-4-3 10:00:07 

import ( 

"fmt" 

)   

func structtest06base()  

//1.普通函式 

//接收值型別引數的函式 

func valueinttest(a int) int  

//接收指標型別引數的函式 

func pointerinttest(a *int) int  

func structtest0601()  

//2.方法 

type persond struct  

//接收者為值型別 

func (p persond) valueshowname()  

//接收者為指標型別 

func (p *persond) pointshowname()  

func structtest0602()  

personvalue.valueshowname() 

personvalue.pointshowname() 

//指標型別呼叫方法 

personpointer := &persond 

personpointer.valueshowname() 

personpointer.pointshowname() 

vbkbijtrn    //與普通函式不同,接收者為指標型別和值型別的方法,指標型別和值型別的變數均可相互呼叫 

本文標題: go語言中普通函式與方法的區別分析

本文位址:

Go語言中方法與函式的區別

go語 同時有函式和 法,法的本質是函式,但是 法和函式 具有不同點。案例如下 mymethoddes project main.go package main import fmt type employee struct 接收者型別為employee func e employee displa...

C語言中巨集定義函式與普通函式的區別

在 及c 語言中允許用乙個識別符號來表示乙個字串,稱為巨集,該字串可以是常數 表示式 格式串等。在編譯預處理時,對程式中所有出現的 巨集名 都用 巨集定義中的字串去代換,這稱為 巨集代換 或 巨集展開 巨集定義是由源程式中的巨集定義命令完成的。巨集代換是由預處理程式自動完成的。若字串是表示式,我們稱...

c語言中static 函式和普通函式的區別?

c程式一直由下列部分組成 1 正文段 cpu執行的機器指令部分 乙個程式只有乙個副本 唯讀,防止程式由於意外事故而修改自身指令 2 初始化資料段 資料段 在程式中所有賦了初值的全域性變數,存放在這裡。3 非初始化資料段 bss段 在程式中沒有初始化的全域性變數 核心將此段初始化為0。4 棧 增長方向...