中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

Go 語(yǔ)言函數(shù)值傳遞值

Go 函數(shù)Go 函數(shù)

傳遞是指在調(diào)用函數(shù)時(shí)將實(shí)際參數(shù)復(fù)制一份傳遞到函數(shù)中,這樣在函數(shù)中如果對(duì)參數(shù)進(jìn)行修改,將不會(huì)影響到實(shí)際參數(shù)。

默認(rèn)情況下,Go 語(yǔ)言使用的是值傳遞,即在調(diào)用過(guò)程中不會(huì)影響到實(shí)際參數(shù)。

以下定義了 swap() 函數(shù):

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

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

   return temp;
}

接下來(lái),讓我們使用值傳遞來(lái)調(diào)用 swap() 函數(shù):

package main

import "fmt"

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

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

   /* 通過(guò)調(diào)用函數(shù)來(lái)交換值 */
   swap(a, b)

   fmt.Printf("交換后 a 的值 : %dn", a )
   fmt.Printf("交換后 b 的值 : %dn", b )
}

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

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

   return temp;
}

以下代碼執(zhí)行結(jié)果為:

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

程序中使用的是值傳遞, 所以?xún)蓚€(gè)值并沒(méi)有實(shí)現(xiàn)交互,我們可以使用 引用傳遞 來(lái)實(shí)現(xiàn)交換效果。

Go 函數(shù)Go 函數(shù)

其他擴(kuò)展