自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用 Go 中的函數(shù)類型 (Function Types)?

開發(fā) 前端
函數(shù)類型(function types)是一種很特殊的類型,它表示著所有擁有同樣的入?yún)㈩愋秃头祷刂殿愋偷暮瘮?shù)集合。

=[[423991]]

函數(shù)類型(function types)是一種很特殊的類型,它表示著所有擁有同樣的入?yún)㈩愋秃头祷刂殿愋偷暮瘮?shù)集合。

如下這一行代碼,定義了一個名叫 Greeting 的函數(shù)類型

  1. type Greeting func(name string) string 

這種類型有兩個特征:

只接收一個參數(shù) ,并且該參數(shù)的類型為 string

返回值也只有一個參數(shù),其類型為 string

一個函數(shù)只要滿足這些特征,那么它就可以通過如下方式將該函數(shù)轉(zhuǎn)換成 Greeting 類型的函數(shù)對象(也即 greet)

  1. func english(name string) string { 
  2.     return "Hello, " + name 
  3.  
  4. // 轉(zhuǎn)換成 Greeting 類型的函數(shù)對象 
  5. greet := Greeting(english) 
  6. // 或者 
  7. var greet Greeting = english 

greet 做為 Greeting 類型的對象,也擁有 Greeting 類型的所有方法,比如下面的 say 方法

  1. func (g Greeting) say(n string) { 
  2.     fmt.Println(g(n)) 

直接調(diào)用試試看,并不會報錯

  1. greet.say("World"

將上面的代碼整合在一起

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. // Greeting function types 
  6. type Greeting func(name string) string 
  7.  
  8. func (g Greeting) say(n string) { 
  9.     fmt.Println(g(n)) 
  10.  
  11. func english(name string) string { 
  12.     return "Hello, " + name 
  13.  
  14. func main() { 
  15.     greet := Greeting(english) 
  16.     greet.say("World"
  17. // output: Hello, World 

 

責任編輯:武曉燕 來源: Go編程時光
相關(guān)推薦

2010-04-01 10:55:48

Oracle 數(shù)據(jù)類型

2018-11-05 14:53:14

Go函數(shù)代碼

2023-09-01 09:19:40

CSS函數(shù)模式

2010-09-06 17:35:43

SQL函數(shù)

2021-10-31 15:46:34

Go語言進程

2023-03-20 08:14:11

PHP類型轉(zhuǎn)換

2023-09-27 10:19:37

類型video函數(shù)

2023-10-29 16:18:26

Go接口

2024-03-04 22:35:07

Currying類型函數(shù)

2023-07-16 23:43:05

Go語言模式

2023-11-29 07:47:29

Golang函數(shù)

2023-10-23 19:27:21

Go函數(shù)

2009-12-04 12:51:27

PHP functio

2022-05-05 09:02:24

Go函數(shù)調(diào)用棧

2022-05-06 19:53:33

Java serve

2022-11-06 23:17:23

Go語言項目

2022-07-04 14:41:31

Go 語言變長參數(shù)變長參數(shù)函數(shù)

2022-07-03 23:07:48

Go語言參數(shù)

2024-02-26 00:02:00

開發(fā)Go

2023-12-21 07:06:32

Go編寫HTML
點贊
收藏

51CTO技術(shù)棧公眾號