日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

返回值类型与函数类型不匹配_golang基础语法,定义函数类型 为已存在的数据类型起别名...

發(fā)布時間:2024/9/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 返回值类型与函数类型不匹配_golang基础语法,定义函数类型 为已存在的数据类型起别名... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡介

在 GO 語言中還有另外一種定義使用函數(shù)的方式,就是函數(shù)類型,所謂的函數(shù)類型就是將函數(shù)作為一種類型可以用來定義變量,這種用法類似于前面我們講過的 int ,float64,string 等類型,這些類型都是可以用來定義變量。基本語法如下:

說明如下:type 關(guān)鍵字后面跟著類型的名字 (FunType),FunType 就是一個類型。那么 FunType 是一個什么類型呢?

是一個函數(shù)類型,因為 FunType 后面跟著 func (用來定義函數(shù)的),但是這里注意的是沒有函數(shù)名字。那么 FunType 是怎樣的一個函數(shù)類型呢?是一個需要傳遞兩個整型參數(shù),有一個整型返回值的函數(shù)類型。

既然函數(shù)類型類似于我們前面學(xué)習(xí)過的 int ,string 等類型,那么函數(shù)類型可以用來定義變量。

var result FuncType // 表示定義了一個變量叫 result, 該變量的 類型是 FuncType 類型,而該類型是一個函數(shù)類型。

下面我們可以使用 result 這個函數(shù)類型的變量來調(diào)用函數(shù)了。

result=Test // 將要調(diào)用的函數(shù)的名字賦值給 result 變量(也可以理解成將 result 變量指向了要調(diào)用的函數(shù)),這里要注意的是:第一:Test 后面不能加括號。第二:函數(shù)類型變量 result 要和將要調(diào)用的函數(shù) Test 保持一致,所謂一致就是我們定義的函數(shù)類型 FuncType 的變量 result,只能調(diào)用參數(shù)是兩個整型的,并且有一個返回值,而且也是整型的函數(shù)。那么 Test 函數(shù)完全滿足要求。

現(xiàn)在已經(jīng)完成了函數(shù)類型變量 result 指向了函數(shù) Test, 那么我們可以使用函數(shù)類型的變量 result 調(diào)用函數(shù):

result (3,6)// 完成函數(shù)的調(diào)用。

這是我們在 GO 語言中使用函數(shù)類型的方式完成函數(shù)的調(diào)用,可能有的小伙伴感覺這種方式比較麻煩,不如我們前面講解的方式使用起來簡單。那么在這里,要求大家先理解這種方式,能記住語法就可以了。關(guān)于該方式的優(yōu)勢,等我們講解完面向?qū)ο缶幊踢@個知識點后,大家就有深刻的理解了。

package main

import "fmt"

func demo1(a int, b int) {

fmt.Println(a + b)

}

//func (int,int)int函數(shù)類型

func demo2(s1 int, s2 int) {

fmt.Println(s1 + s2)

}

//定義函數(shù)類型 為已存在的數(shù)據(jù)類型起別名

type FUNCDEMO func(int, int)

func main() {

//demo1(10, 20)

//函數(shù)的名字表示一個地址 函數(shù)在代碼區(qū)的地址

fmt.Println(demo1)

//f是func (int,int)函數(shù)類型定義的變量

//var f func(int, int)

var f FUNCDEMO

//函數(shù)類型定義的變量結(jié)束函數(shù)的地址

f = demo1

fmt.Println(f)

//通過f調(diào)用函數(shù)

f(10, 20)

f = demo2

f(1, 2)

fmt.Printf("%T", f)

}

總結(jié)

以上是生活随笔為你收集整理的返回值类型与函数类型不匹配_golang基础语法,定义函数类型 为已存在的数据类型起别名...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。