Go 語言函數值傳遞值

Go 函數Go 函數

傳遞是指在調用函數時將實際參數複製一份傳遞到函數中,這樣在函數中如果對參數進行修改,將不會影響到實際參數。

默認情況下,Go 語言使用的是值傳遞,即在調用過程中不會影響到實際參數。

以下定義了 swap() 函數:

/* 定義相互交換值的函數 */
func swap(x, y int) int {
   var temp int

   temp = x /* 保存 x 的值 */
   x = y    /* 將 y 值賦給 x */
   y = temp /* 將 temp 值賦給 y*/

   return temp;
}

接下來,讓我們使用值傳遞來調用 swap() 函數:

package main

import "fmt"

func main() {
   /* 定義局部變數 */
   var a int = 100
   var b int = 200

   fmt.Printf("交換前 a 的值為 : %d\n", a )
   fmt.Printf("交換前 b 的值為 : %d\n", b )

   /* 通過調用函數來交換值 */
   swap(a, b)

   fmt.Printf("交換後 a 的值 : %d\n", a )
   fmt.Printf("交換後 b 的值 : %d\n", b )
}

/* 定義相互交換值的函數 */
func swap(x, y int) int {
   var temp int

   temp = x /* 保存 x 的值 */
   x = y    /* 將 y 值賦給 x */
   y = temp /* 將 temp 值賦給 y*/

   return temp;
}

以下代碼執行結果為:

交換前 a 的值為 : 100
交換前 b 的值為 : 200
交換後 a 的值 : 100
交換後 b 的值 : 200

程式中使用的是值傳遞, 所以兩個值並沒有實現交互,我們可以使用 引用傳遞 來實現交換效果。

Go 函數Go 函數