最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang如何通過type定義函數(shù)類型

 更新時(shí)間:2024年01月19日 10:05:33   作者:昵稱都用過了?  
這篇文章主要介紹了golang如何通過type定義函數(shù)類型問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

函數(shù)簽名

定義

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

函數(shù)類型相同

兩個(gè)函數(shù)類型相同的條件是:擁有相同的形參列表和返回值列表(列表元素的次序、個(gè)數(shù)和類型都相同),形參名可以不同 。

以下 3 個(gè)函數(shù)的函數(shù)類型完全一樣。

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 }

舉個(gè)栗子

新建test.go

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)
}

執(zhí)行g(shù)o run test.go輸出結(jié)果如下:

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

通過type定義函數(shù)類型

通過 type 可以定義函數(shù)類型,格式如下

type typeName func(arguments) retType

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

package main

import "fmt"

func add(a, b int) int {
	return a + b
}

//sub作為函數(shù)名可以看成是 op 類型的常量
func sub(a, b int) int {
	return a - b
}

//定義函數(shù)類型 op
type op func(a, b int) int

//形參指定傳入?yún)?shù)為函數(shù)類型op
func Oper(fu op, a, b int) int {
	return fu(a, b)
}

func main() {
	//在go語言中函數(shù)名可以看做是函數(shù)類型的常量,所以我們可以直接將函數(shù)名作為參數(shù)傳入的函數(shù)中。
	aa := Oper(add, 1, 2)
	fmt.Println(aa)
	bb := Oper(sub, 1, 2)
	fmt.Println(bb)
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

  • Go中Channel發(fā)送和接收操作指南

    Go中Channel發(fā)送和接收操作指南

    在golang中channel屬于較為核心的一個(gè)功能,尤其在go協(xié)程中,channel功能尤為重要,下面這篇文章主要給大家介紹了關(guān)于Go中Channel發(fā)送和接收操作的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • go開源項(xiàng)目用戶名密碼驗(yàn)證的邏輯鬼才寫法

    go開源項(xiàng)目用戶名密碼驗(yàn)證的邏輯鬼才寫法

    這篇文章主要為大家介紹了go開源項(xiàng)目中發(fā)現(xiàn)的一個(gè)邏輯鬼才寫法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 詳解Go語言Slice作為函數(shù)參數(shù)的使用

    詳解Go語言Slice作為函數(shù)參數(shù)的使用

    Slice切片在Go語言中實(shí)質(zhì)是一種結(jié)構(gòu)體類型,本文詳細(xì)的介紹了Go語言Slice作為函數(shù)參數(shù)的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Go??import _ 下劃線使用

    Go??import _ 下劃線使用

    這篇文章主要為大家介紹了Go??import下劃線_使用小技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 詳解在Go語言中如何實(shí)現(xiàn)枚舉類型

    詳解在Go語言中如何實(shí)現(xiàn)枚舉類型

    枚舉類型是一種常用的數(shù)據(jù)類型,用于表示一組有限的、預(yù)定義的、具名的常量值。而在?Go?語言里是沒有內(nèi)置枚舉類型的,所以本文將介紹如何實(shí)現(xiàn)?“枚舉類型”,需要的可以參考一下
    2023-04-04
  • 一文詳解go同步協(xié)程的必備工具WaitGroup

    一文詳解go同步協(xié)程的必備工具WaitGroup

    這篇文章主要為大家介紹了一文詳解go同步協(xié)程的必備工具WaitGroup使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Golang兩行代碼實(shí)現(xiàn)發(fā)送釘釘機(jī)器人消息

    Golang兩行代碼實(shí)現(xiàn)發(fā)送釘釘機(jī)器人消息

    創(chuàng)建一個(gè)釘釘機(jī)器人必須使用加簽,本文通過Golang兩行代碼實(shí)現(xiàn)發(fā)送釘釘機(jī)器人消息,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • golang判斷結(jié)構(gòu)體為空的問題

    golang判斷結(jié)構(gòu)體為空的問題

    這篇文章主要介紹了golang判斷結(jié)構(gòu)體為空的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • go語言中的map如何解決散列性能下降

    go語言中的map如何解決散列性能下降

    近期對go語言的map進(jìn)行深入了解和探究,其中關(guān)于map解決大量沖突的擴(kuò)容操作設(shè)計(jì)的十分巧妙,所以筆者特地整理了這篇文章來探討一下go語言中map如何解決散列性能下降,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2024-03-03
  • 最新評(píng)論

    阳西县| 隆子县| 苏尼特左旗| 长岛县| 鱼台县| 明溪县| 宁化县| 克东县| 北票市| 滁州市| 桦甸市| 清苑县| 屏东县| 青冈县| 嵊泗县| 醴陵市| 南澳县| 平利县| 门头沟区| 安多县| 界首市| 汕尾市| 普兰店市| 榕江县| 东莞市| 岳池县| 合川市| 华亭县| 怀来县| 金坛市| 鱼台县| 通州区| 许昌市| 龙里县| 万州区| 常山县| 普定县| 资源县| 金坛市| 大余县| 射阳县|