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")
}
网友评论