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

主頁 > 知識庫 > Go語言中函數的參數傳遞與調用的基本方法

Go語言中函數的參數傳遞與調用的基本方法

熱門標簽:?兓? 電銷機器人可以補救房產中介嗎 騰訊外呼系統價格 電梯外呼訪客系統 成都呼叫中心外呼系統平臺 百度地圖標注搜索關鍵詞 浙江人工智能外呼管理系統 最短的地圖標注 谷歌便利店地圖標注

按值傳遞函數參數,是拷貝參數的實際值到函數的形式參數的方法調用。在這種情況下,參數在函數內變化對參數不會有影響。

默認情況下,Go編程語言使用調用通過值的方法來傳遞參數。在一般情況下,這意味著,在函數內碼不能改變用來調用所述函數的參數。考慮函數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;
}


現在,讓我們通過使實際值作為在以下示例調用函數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;
}


讓我們把上面的代碼放在一個C文件,編譯并執行它,它會產生以下結果:

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

這表明,參數值沒有被改變,雖然它們已經在函數內部改變。

通過傳遞函數參數,即是拷貝參數的地址到形式參數的參考方法調用。在函數內部,地址是訪問調用中使用的實際參數。這意味著,對參數的更改會影響傳遞的參數。

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

復制代碼 代碼如下:

/* 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 */
}

現在,讓我們調用函數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.
   * 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 */
}


讓我們把上面的代碼放在一個C文件,編譯并執行它,它會產生以下結果:

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

這表明變化的功能以及不同于通過值調用的外部體現的改變不能反映函數之外。

您可能感興趣的文章:
  • Golang中的自定義函數詳解
  • 深入解析golang編程中函數的用法
  • Golang 如何實現函數的任意類型傳參

標簽:上海 宜昌 邢臺 七臺河 雅安 盤錦 紹興 眉山

巨人網絡通訊聲明:本文標題《Go語言中函數的參數傳遞與調用的基本方法》,本文關鍵詞  語,言中,函數,的,參數,傳遞,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go語言中函數的參數傳遞與調用的基本方法》相關的同類信息!
  • 本頁收集關于Go語言中函數的參數傳遞與調用的基本方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 香河县| 武平县| 新绛县| 湘西| 乌拉特中旗| 巴林左旗| 黔江区| 杂多县| 焉耆| 郴州市| 海兴县| 陇川县| 曲阜市| 历史| 桃源县| 孟村| 新源县| 长垣县| 顺平县| 琼结县| 香港 | 古蔺县| 昌邑市| 建湖县| 峨边| 顺昌县| 安丘市| 措勤县| 萨嘎县| 内乡县| 新闻| 靖远县| 信宜市| 梁平县| 南开区| 长岛县| 慈利县| 云南省| 宜宾县| 泽州县| 晋中市|