返回值类型与函数类型不匹配_golang基础语法,定义函数类型 为已存在的数据类型起别名...
簡介
在 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 mainimport "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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cookie session token
- 下一篇: pyqt 把控制台信息显示到_内网渗透初