選單

Golang中的函式

函式作為引數

packagemain

import“fmt”

/*

@Time : 2022/5/19 0:18

@Author : 張大鵬

@File : main

@Software: Goland2021。3。1

@Description: 函式作為引數

*/

// 接收無參無返回值函式作為引數

functestFunc(fcfunc()) {

fc()// 內部呼叫方法

}

// 帶引數函式作為引數

functestFunc2(fcfunc(messagestring),messagestring) {

fmt。Println(“方法執行之前”)

fc(message)

fmt。Println(“方法執行之後”)

}

funcmain() {

// 使用匿名函式進行測試

testFunc(func() {

fmt。Println(“你好,世界。。。。”)

})

fmt。Println(“================”)

// 測試帶引數函式作為引數

testFunc2(func(messagestring) {

fmt。Println(“接收到客戶端訊息:”,message)

},“你好,我是張大鵬。”)

}

函式作為返回值

packagemain

/*

@Time : 2022/5/19 0:34

@Author : 張大鵬

@File : main

@Software: Goland2021。3。1

@Description: 函式作為返回值

*/

import“fmt”

// 函式作為返回值

funcgetOpFunc(fTypestring)func(int,int)int{

switchfType{

case“+”:

returnfunc(aint,bint)int{

returna+b

}

case“-”:

returnfunc(aint,bint)int{

returna-b

}

case“*”:

returnfunc(aint,bint)int{

returna*b

}

case“/”:

returnfunc(aint,bint)int{

returna/b

}

default:

returnnil// 函式是引用型別,預設是nil

}

}

funcmain() {

// 獲取加法

addFunc:=getOpFunc(“+”)

fmt。Println(addFunc(11,22))

// 獲取乘法

multiplyFunc:=getOpFunc(“*”)

fmt。Println(multiplyFunc(11,22))

}

帶參和帶返回值函式作為引數

packagemain

import“fmt”

/*

@Time : 2022/5/19 0:27

@Author : 張大鵬

@File : main

@Software: Goland2021。3。1

@Description: 帶返回值的函式作為引數

*/

// 函式作為引數

funchandleTwoNum(a,bint,ffunc(int,int)int)int{

returnf(a,b)

}

funcmain() {

// 加法

result:=handleTwoNum(11,22,func(aint,bint)int{

returna+b

})

fmt。Println(result)

// 乘法

result=handleTwoNum(11,22,func(aint,bint)int{

returna*b

})

fmt。Println(result)

}

閉包函式

packagemain

import“fmt”

/*

@Time : 2022/5/19 13:50

@Author : 張大鵬

@File : main

@Software: Goland2021。3。1

@Description: 閉包函式

*/

functestDemo(ffunc(namestring),namestring)func() {

returnfunc() {// 返回內部函式

f(name)// 內部函式使用了外部函式的引數

}

}

funcmain() {

// 得到的是一個函式

f:=testDemo(func(namestring) {

fmt。Println(“名字是:”,name)

},“張大鵬”)

// 執行函式

f()

}

文末福利

zdptool專案原始碼:https://github。com/zhangdapeng520/zdpgo_cmd

這個是作者抖音裡面演示的那個刪除資料夾的專案,從抖音過來的粉絲可以從這個地址下載哈。