欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2024年01月19日 10:05:33   作者:昵稱都用過(guò)了?  
這篇文章主要介紹了golang如何通過(guò)type定義函數(shù)類型問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(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

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

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

type typeName func(arguments) retType

函數(shù)類型也是一種類型,故可以將其定義為函數(shù)入?yún)?,?go 語(yǔ)言中函數(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語(yǔ)言中函數(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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于go微服務(wù)效率工具goctl深度解析

    基于go微服務(wù)效率工具goctl深度解析

    這篇文章主要為大家介紹了基于go微服務(wù)效率工具goctl深度解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 一文帶你了解Go語(yǔ)言中的I/O接口設(shè)計(jì)

    一文帶你了解Go語(yǔ)言中的I/O接口設(shè)計(jì)

    I/O?操作在編程中扮演著至關(guān)重要的角色,它涉及程序與外部世界之間的數(shù)據(jù)交換,下面我們就來(lái)簡(jiǎn)單了解一下Go語(yǔ)言中的?I/O?接口設(shè)計(jì)吧
    2023-06-06
  • Golang Http請(qǐng)求返回結(jié)果處理

    Golang Http請(qǐng)求返回結(jié)果處理

    本文主要介紹了Golang Http請(qǐng)求返回結(jié)果處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Go語(yǔ)言實(shí)現(xiàn)百萬(wàn)級(jí)WebSocket連接架構(gòu)設(shè)計(jì)及服務(wù)優(yōu)化

    Go語(yǔ)言實(shí)現(xiàn)百萬(wàn)級(jí)WebSocket連接架構(gòu)設(shè)計(jì)及服務(wù)優(yōu)化

    本文將詳細(xì)介紹如何在Go中構(gòu)建一個(gè)能夠支持百萬(wàn)級(jí)WebSocket連接的服務(wù),包括系統(tǒng)架構(gòu)設(shè)計(jì)、性能優(yōu)化策略以及具體的實(shí)現(xiàn)步驟和代碼示例
    2024-01-01
  • Golang實(shí)現(xiàn)異步上傳文件支持進(jìn)度條查詢的方法

    Golang實(shí)現(xiàn)異步上傳文件支持進(jìn)度條查詢的方法

    這篇文章主要介紹了Golang實(shí)現(xiàn)異步上傳文件支持進(jìn)度條查詢的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • GO文件創(chuàng)建及讀寫(xiě)操作示例詳解

    GO文件創(chuàng)建及讀寫(xiě)操作示例詳解

    這篇文章主要為大家介紹了GO文件創(chuàng)建及讀寫(xiě)操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Golang內(nèi)存模型教科書(shū)級(jí)講解

    Golang內(nèi)存模型教科書(shū)級(jí)講解

    go官方介紹go內(nèi)存模型的時(shí)候說(shuō):探究在什么條件下,goroutine?在讀取一個(gè)變量的值的時(shí),能夠看到其它?goroutine?對(duì)這個(gè)變量進(jìn)行的寫(xiě)的結(jié)果,Go內(nèi)存模型規(guī)定了一些條件,在這些條件下,在一個(gè)goroutine中讀取變量返回的值能夠確保是另一個(gè)goroutine中對(duì)該變量寫(xiě)入的值
    2023-03-03
  • golang基于Mutex實(shí)現(xiàn)可重入鎖

    golang基于Mutex實(shí)現(xiàn)可重入鎖

    鎖可重入也就是當(dāng)前已經(jīng)獲取到鎖的goroutine繼續(xù)調(diào)用Lock方法獲取鎖,Go標(biāo)準(zhǔn)庫(kù)中提供了sync.Mutex實(shí)現(xiàn)了排他鎖,但并不是可重入的,所以本文給大家介紹了golang基于Mutex實(shí)現(xiàn)可重入鎖,文中有詳細(xì)的代碼示例,需要的朋友可以參考下
    2024-03-03
  • go內(nèi)存緩存如何new一個(gè)bigcache對(duì)象示例詳解

    go內(nèi)存緩存如何new一個(gè)bigcache對(duì)象示例詳解

    這篇文章主要為大家介紹了go內(nèi)存緩存如何new一個(gè)bigcache對(duì)象示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • golang?gorm的預(yù)加載及軟刪硬刪的數(shù)據(jù)操作示例

    golang?gorm的預(yù)加載及軟刪硬刪的數(shù)據(jù)操作示例

    這篇文章主要介紹了golang?gorm的預(yù)加載及軟刪硬刪的數(shù)據(jù)操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04

最新評(píng)論