Go语言之函数使用
Posted 程序彤
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言之函数使用相关的知识,希望对你有一定的参考价值。
go语言跨包调函数
引入其他包所在位置,从$GOPATH路径下的src去定位。
使用包名.大写函数名 跨包调用函数
使用包名.大写变量名 跨包调用变量
main/main.go
package main
import(
"fmt"
"go_code/day0513/utils"
)
func main(){
var a int = 6
var b int = 2
var operator byte = '-'
result := utils.Cal(a,b,operator)
fmt.Println("结果=",result)
}
utils/utils.go
package utils
import(
"fmt"
)
/**
返回类型为int的+-方法
*/
func Cal(a int,b int,operator byte) int{
var res int
switch operator{
case '+':
res = a+b
case '-':
res = a-b
default:
fmt.Println("操作符错误")
}
return res
}
在同一包下的所有.go文件不能有相同的函数和变量。
go语言中的函数是一个数据类型,能当做形参传入
函数的细节:
package main
import(
"fmt"
"go_code/day0513/utils"
)
func main(){
var a int = 6
var b int = 2
var operator byte = '-'
result := utils.Cal(a,b,operator)
fmt.Println("结果=",result)
fmt.Println("-------以上为跨包调函数--------")
res2 := myFun(getSum,1,2)
fmt.Println("res2=",res2)
fmt.Println("-------以上为'函数是个数据类型'的案例--------")
type myInt int
var num3 myInt
num3 = 66
fmt.Println(num3)
var num4 int
num4 = int(num3) // 这里依然需要显示转换,go认为myInt和int两个类型
fmt.Println(num4)
res3 := myFun1(getSum,10,1)
fmt.Println("res3=",res3)
fmt.Println("-------以上为自定义数据类型--------")
a1,b1 := getSumAndSub(1,2)
fmt.Printf("a1=%v,b1=%v\\n",a1,b1)
fmt.Println("-------给多个返回类型取别名--------")
}
func getSum(n1 int,n2 int) int{
return n1+n2
}
// 函数是一个数据类型
func myFun(funMethod func(int,int) int,num1 int,num2 int) int{
return funMethod(num1,num2)
}
type myFunType func(int,int) int // 必须提到外面
func myFun1(funMethod myFunType,num1 int,num2 int) int{
return funMethod(num1,num2)
}
func getSumAndSub(n1 int,n2 int) (sum int,sub int){ // 返回类型起别名
sum = n1+n2
sub = n1-n2
return
}
以上是关于Go语言之函数使用的主要内容,如果未能解决你的问题,请参考以下文章