package main
import "fmt"
func sum(a, b int) int {
return a + b
}
func sumArgs(args ...int) int {
var sum int
for _, v := range args {
sum += v
}
return sum
}
func Sum(args ...int) int {
// 利用 ... 来解序列
result := sumArgs(args...)
return result
}
func MyPrintf(args ...interface{}) {
for _, arg := range args {
fmt.Println(arg)
switch arg.(type) {
case int:
fmt.Println("int", arg)
case string:
fmt.Println("string", arg)
case float32:
fmt.Println("float")
default:
fmt.Println("err", arg)
}
}
}
// 定义函数类型
type Greeting func(name string) string
func (g Greeting) say(n string) {
fmt.Println(g(n))
}
func english(n string) string {
return "english " + n
}
func main() {
fmt.Println(sum(1, 2))
fmt.Println(sumArgs(1, 2, 3, 4))
var v1 int = 1
var v2 int64 = 234
var v3 string = "hello"
var v4 float32 = 1.234
MyPrintf(v1, v2, v3, v4)
fmt.Println(Sum(1, 2, 3, 4, 5))
//转换成 Greeting 类型的函数对象
g := Greeting(english)
// var g2 Greeting = english
var g2 Greeting = english
g2.say("g2")
g.say("hi")
}
函数类型
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 函数重载 1.函数名相同2.参数个数不同|参数类型不同|参数标签不同注意:返回值类型和函数重载无关,我们不用看返回...
- 这是一个有意思的问题,当时我是在处理函数的柯里化,突然发现了Swift的柯里化函数库(Curry)中的函数参数与我...
- 接口 interface 在TypeScript中,使用接口来定义对象的类型,对「对象的形状(Shape)」进行描...
- 1. 在前面几节课中,分别演示函数作为参数,以及函数类型的使用。本节课为你演示如何将函数,作为另一个函数的返回值。...
- 本文整理来自深入Vue3+TypeScript技术栈-coderwhy大神新课[https://ke.qq.com...