Go языка значение переноса значения функции
Передача означает, что при вызове функции, чтобы скопировать фактические параметры, передаваемые в функцию, так что если параметры функции могут быть изменены, не влияют на фактические параметры.
По умолчанию Go язык передается по значению, то есть, во время разговора не будет влиять на фактические параметры.
Следующие определения функции подкачки ():
/* 定义相互交换值的函数 */ func swap(x, y int) int { var temp int temp = x /* 保存 x 的值 */ x = y /* 将 y 值赋给 x */ y = temp /* 将 temp 值赋给 y*/ return temp; }
Далее, давайте используем значение, переданное в функцию подкачки вызова ():
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