在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 給上面乙個程式,其中最主...