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 棧 增長方向...