怎么在Golang中對(duì)函數(shù)的參數(shù)進(jìn)行傳遞

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)怎么在Golang中對(duì)函數(shù)的參數(shù)進(jìn)行傳遞,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)整合營(yíng)銷推廣、網(wǎng)站重做改版、崖州網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為崖州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

默認(rèn)情況下,Go編程語(yǔ)言使用調(diào)用通過值的方法來傳遞參數(shù)。在一般情況下,這意味著,在函數(shù)內(nèi)碼不能改變用來調(diào)用所述函數(shù)的參數(shù)??紤]函數(shù)swap()的定義如下。

/* function definition to swap the values */func swap(int x, int y) int {   var temp int
   temp = x /* save the value of x */   x = y    /* put y into x */   y = temp /* put temp into y */
   return temp;}


現(xiàn)在,讓我們通過使實(shí)際值作為在以下示例調(diào)用函數(shù)swap():

package main
import "fmt"
func main() {   /* local variable definition */   var a int = 100   var b int = 200
   fmt.Printf("Before swap, value of a : %d\n", a )   fmt.Printf("Before swap, value of b : %d\n", b )
   /* calling a function to swap the values */   swap(a, b)
   fmt.Printf("After swap, value of a : %d\n", a )   fmt.Printf("After swap, value of b : %d\n", b )}func swap(x, y int) int {   var temp int
   temp = x /* save the value of x */   x = y    /* put y into x */   y = temp /* put temp into y */
   return temp;}


讓我們把上面的代碼放在一個(gè)C文件,編譯并執(zhí)行它,它會(huì)產(chǎn)生以下結(jié)果:

Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :100
After swap, value of b :200

這表明,參數(shù)值沒有被改變,雖然它們已經(jīng)在函數(shù)內(nèi)部改變。

通過傳遞函數(shù)參數(shù),即是拷貝參數(shù)的地址到形式參數(shù)的參考方法調(diào)用。在函數(shù)內(nèi)部,地址是訪問調(diào)用中使用的實(shí)際參數(shù)。這意味著,對(duì)參數(shù)的更改會(huì)影響傳遞的參數(shù)。

要通過引用傳遞的值,參數(shù)的指針被傳遞給函數(shù)就像任何其他的值。所以,相應(yīng)的,需要聲明函數(shù)的參數(shù)為指針類型如下面的函數(shù)swap(),它的交換兩個(gè)整型變量的值指向它的參數(shù)。

/* function definition to swap the values */
func swap(x *int, y *int) {
   var temp int
   temp = *x    /* save the value at address x */
   *x = *y      /* put y into x */
   *y = temp    /* put temp into y */
}


現(xiàn)在,讓我們調(diào)用函數(shù)swap()通過引用作為在下面的示例中傳遞數(shù)值:

package main
import "fmt"
func main() {   /* local variable definition */   var a int = 100   var b int= 200
   fmt.Printf("Before swap, value of a : %d\n", a )   fmt.Printf("Before swap, value of b : %d\n", b )
   /* calling a function to swap the values.   * &a indicates pointer to a ie. address of variable a and    * &b indicates pointer to b ie. address of variable b.   */   swap(&a, &b)
   fmt.Printf("After swap, value of a : %d\n", a )   fmt.Printf("After swap, value of b : %d\n", b )}
func swap(x *int, y *int) {   var temp int   temp = *x    /* save the value at address x */   *x = *y    /* put y into x */   *y = temp    /* put temp into y */}


讓我們把上面的代碼放在一個(gè)C文件,編譯并執(zhí)行它,它會(huì)產(chǎn)生以下結(jié)果:

Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :200
After swap, value of b :100

這表明變化的功能以及不同于通過值調(diào)用的外部體現(xiàn)的改變不能反映函數(shù)之外。

上述就是小編為大家分享的怎么在Golang中對(duì)函數(shù)的參數(shù)進(jìn)行傳遞了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

名稱欄目:怎么在Golang中對(duì)函數(shù)的參數(shù)進(jìn)行傳遞
轉(zhuǎn)載來于:http://bm7419.com/article40/jdsoeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)、虛擬主機(jī)、網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)