4 5 將函式作為值傳遞

2021-10-12 12:55:52 字數 805 閱讀 7843

在go

語言中,

函式也是值

,可被賦值、傳參或返回,這是函式式程式設計的基礎

1. 函式內部的函式

,必須為匿名函式

func foo(i int) }

注:在需要使用時,可以通過bar來呼叫,bar()

2. 向函式傳遞函式,將其賦予乙個有名引數變數

func foo(bar

func

() int)

3. 從函式返回函式

func foo(i int) func() int }

函式既然是值,那就必然也有型別,函式的型別就是沒有函式名的簽名。

func(

參數列)

返回值表

,可以看作是一種對函式型別的描述。

注:參數列中的引數名如果不被引用則可以省略,但引數型別不能省略

// go語言將函式視為某種型別的資料,因此可將函式賦值給變 

// 量,作為引數傳遞給函式,或以返回值的形式從函式中返回

package main

import "fmt"

// add, sub, mul雖然功能不同,但它們的函式型別相同,都是接受2個整型引數,返// 回乙個整型資料

func add(x, y int) int

func sub(x, y int) int

func mul(x, y int) int

func cal(x, y int, f func(int, int) int) int

func main()

Go中函式作為值 型別傳遞。

在go中函式也是一種變數,我們可以通過type來定義它,它的型別就是所有擁有相同的引數,相同的返回值的一種型別 type typename func input1 inputtype1 input2 inputtype2 result1 resulttype1 函式作為型別到底有什麼好處呢?那就是可...

將陣列作為實參傳遞

在c 中我們應該少用指標,多用引用,原因請大家自行搜尋。在傳遞陣列的時候我們需要格外注意,先讓我們看乙個簡單的範例。passarray.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std template void func1...

將函式名 位址 作為引數傳遞

include int add int a,int b int aaa int a,int b,int p int,int 注意定義的函式指標 int main int a 1,b 2 printf d aaa a,b,add 將函式名 函式位址 作為引數 return 0 給上面乙個程式,其中最主...