golang基础-函数是变量、自定义type、命名返回值、可变参、defer
发布时间:2020-12-16 09:45:24 所属栏目:大数据 来源:网络整理
导读:函数是一个变量类型 package mainimport( "fmt" )func main() { c := add fmt.Println(c) sum := c( 10 , 20 ) fmt.Println( sum )}func add ( a ,b int) int { return a + b} 输出如下: 0x488a0030 自定义一个type类型函数model package main import ( "fm
函数是一个变量类型package main
import("fmt"
)
func main() {
c := add
fmt.Println(c)
sum := c(10,20)
fmt.Println(sum)
}
func add(a,b int) int {
return a + b
}
输出如下: 0x488a00 30 自定义一个type类型函数modelpackage main
import("fmt"
)
//定义一个type类型,func(int,int) int 构造一种方法的模型
type methodModel func(int,int) int
func add(a int,b int) int {
return a+b
}
//接受一个类似methodModel方法的具体方法
func operator(entity methodModel,a int,b int)int{
return entity(a,b)
}
func main() {
var a int = 1
var b int = 2
c:= add
sum := operator(c,a,b)
fmt.Printf("%dn",sum)
}
输出3 命名返回值、忽略返回值1、值传递 package main
import("fmt"
)
func add(a,b int) (c int) {
c = a + b
return
}
func calc(a,b int) (sum int,avg int) {
sum = a + b
avg = (a +b)/2
return
}
func main() {
var a int = 1
var b int = 2
c := add(a,b)
fmt.Println(c)
sum,_ := calc(a,b)
fmt.Println(sum)
sum1,avg1 := calc(a,b)
``
mt.Println(sum1,avg1)
}
输出如下: 3 3 3 1 可变参数package main
import("fmt"
)
func add(a int,args ... int)(result int) {
result = a
for i:=0;i<len(args);i++{
result += args[i]
}
return
}
func main() {
sum := add(1,2,3)
fmt.Print(sum)
}
输出如下:6 defer用途
package main
import("fmt"
)
func add(a int,b int) int{
defer fmt.Println("defer method")
return a + b
}
func main() {
defer fmt.Println("defer main1")
defer fmt.Println("defer main2")
sum := add(1,2)
fmt.Print(sum,"n")
defer fmt.Println("defer method after")
}
输出如下: defer method 3 defer method after defer main2 defer main1
匿名函数package main
import("fmt"
)
//匿名函数1
var (
result = func(a int,b int) int{
return a + b
}
)
//非匿名函数
func sum1(a int,b int)int {
return a + b
}
//匿名函数2
func sum2(a int,b int) int {
tempMethod := func(a int,b int) int {
return a + b
}
return tempMethod(a,b)
}
func sum3(a int,b int ) int {
resultTemp := func(a int,b int )int {
return a + b
}(a,b)
return resultTemp
}
func main() {
sum := result(1,2)
fmt.Println(sum)
method:=sum1
fmt.Println(method(3,4))
fmt.Println(sum2(4,6))
fmt.Println(sum3(7,9))
}
输出如下: 3 7 10 16 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |