91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言的type?func()怎么用

發布時間:2022-03-23 11:22:18 來源:億速云 閱讀:322 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“Go語言的type func()怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Go語言的type func()怎么用”這篇文章吧。

一、前置基礎

1. go 函數基礎

在Go語言中,函數的基本組成為:關鍵字func、函數名、參數列表、返回值、函數體和返回語句。

func 函數名(參數列表) 返回值類型 {函數體內部}

Go語言是強數據類型的語言,參數是要指定類型的不然就報錯。func 是函數的聲明關鍵字。

1) 返回值
返回值的定義,是可以給返回值取一個名稱的,還有一點是和其他的編程語言不一樣的是在Go語言中函數的返回值可以有多個的

func addTwoNumber(a int, b int) (int, int) {
return a+b, a-b
}

同時可以給返回值取一個別名

func addTwoNumber(a int, b int) (sum, dif int) {
return a+b, a-b
}

像這樣給返回值取完名字后可以給返回值直接賦值

func addTwoNumber(a int, b int) (sum, dif int) {
sum = a+b
dif = a-b
return
}

同樣這樣也是可以直接返回sum,和dif兩個值的。

2) 函數可變參數

func sum(numbers ...int) int {
s := 0
for i := range numbers{
s += i
}r
eturn s
}f
unc main() {
fmt.Println(sum(1,2,3,4,5))
}

像這樣我們就可以傳給sum函數多個值了。

2. 函數簽名

函數類型 又叫 函數簽名 , 一個函數 的類型就是函數定義首行去掉函數名、參數名和{,可以 使用 fmt.Printf 的”%T”格式化參數打印函數的類型。

函數類型相同
兩個函數類型相同的條件是**:擁有相同的形參列表和返回值列表(列表元素的次序、個數和類型都相同),形參名可以不同 。** 以下 3 個函數的函數類型完全一樣。

func add (a , b int) int { return a + b }
func sub (c int, d int) int { return c - d }
func mul (e int, f int) int { return e * f }

驗證demo

package main
import "fmt"

func add(a, b int) int     { return a + b }
func sub(c int, d int) int { return c - d }
func mul(e int, f int) int { return e * f }
func main() {
	fmt.Printf("%T\n", add)
	fmt.Printf("%T\n", sub)
	fmt.Printf("%T\n", mul)
}

執行go run test.go輸出結果如下:

func(int, int) int
func(int, int) int
func(int, int) int

二、Go語言的type func()用法 | type func() 自定義函數類型

1. golang通過type定義函數類型

在 Go 語言中,type 可以定義任何自定義的類型

比如熟悉的:type dog struct{},type myInt int 等等

所以 func 也是可以作為類型自定義的,type myFunc func(int) int,意思是自定義了一個叫 myFunc 的函數類型,這個函數的簽名必須符合輸入為 int,輸出為 int。

golang通過type定義函數類型
通過 type 可以定義函數類型,格式如下

type typeName func(arguments) retType

函數類型也是一種類型,故可以將其定義為函數入參,在 go 語言中函數名可以看做是函數類型的常量,所以我們可以直接將函數名作為參數傳入的函數中。

驗證demo

package main

import "fmt"
func add(a, b int) int {
	return a + b
}
//sub作為函數名可以看成是 op 類型的常量
func sub(a, b int) int {
	return a - b
//定義函數類型 op
type op func(a, b int) int
//形參指定傳入參數為函數類型op
func Oper(fu op, a, b int) int {
	return fu(a, b)
func main() {
	//在go語言中函數名可以看做是函數類型的常量,所以我們可以直接將函數名作為參數傳入的函數中。
	aa := Oper(add, 1, 2)
	fmt.Println(aa)
	bb := Oper(sub, 1, 2)
	fmt.Println(bb)

以上是“Go語言的type func()怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

朝阳县| 彝良县| 阳泉市| 屏东市| 宣恩县| 吉木萨尔县| 江源县| 商城县| 荣成市| 鄂州市| 韶关市| 卫辉市| 永清县| 静乐县| 五寨县| 临澧县| 紫云| 霞浦县| 乾安县| 重庆市| 镇原县| 南丰县| 大宁县| 临海市| 湘乡市| 景洪市| 麦盖提县| 舞钢市| 石首市| 富宁县| 旬阳县| 广西| 新闻| 民乐县| 绥德县| 桂阳县| 伊川县| 象山县| 衡水市| 水城县| 江阴市|