1. 程式人生 > 實用技巧 >Runoob-Go-指標:向函式傳遞指標函式

Runoob-Go-指標:向函式傳遞指標函式

ylbtech-Runoob-Go-指標:向函式傳遞指標函式

1.返回頂部
1、

Go 語言指標作為函式引數

Go 指標

Go 語言允許向函式傳遞指標,只需要在函式定義的引數上設定為指標型別即可

以下例項演示瞭如何向函式傳遞指標,並在函式呼叫後修改函式內的值,:

例項

packagemain

import"fmt"

funcmain(){
/* 定義區域性變數 */
varaint=100
varbint=200

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

/* 呼叫函式用於交換值
* &a 指向 a 變數的地址
* &b 指向 b 變數的地址
*/
swap(&a,&b);

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

funcswap(x*int,y*int){
vartempint
temp=*x /* 儲存 x 地址的值 */
*x=*y /* 將 y 賦值給 x */
*y=temp /* 將 temp 賦值給 y */
}

以上例項允許輸出結果為:

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

Go 指標

2、
2.返回頂部
3.返回頂部
4. 筆記返回頂部
·

以下是一個更簡潔的變數交換例項:

package main

import "fmt"

func main() {
    /* 定義區域性變數 */
   var a int = 100
   var b int= 200
   swap(&a, &b);

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

/* 交換函式這樣寫更加簡潔,也是 go 語言的特性,可以用下,c++ 和 c# 是不能這麼幹的 */
 
func swap(x *int, y *int){
    *x, *y = *y, *x
}
·

以下是一個更更簡潔的變數交換例項:

package main

import "fmt"

func main() {
    /* 定義區域性變數 */
   var a int = 100
   var b int= 200
   a, b = b, a

   fmt.Printf("交換後 a 的值 : %d\n", a )
   fmt.Printf("交換後 b 的值 : %d\n", b )
}
·
5.返回頂部
1、 https://www.runoob.com/go/go-passing-pointers-to-functions.html 2、
6.返回頂部
作者:ylbtech
出處:http://ylbtech.cnblogs.com/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。