Golang的函数

江世文 · · 87 次点击 · · 开始浏览    

前言

做开发快二年时间了,但是一般博客发布都在博客园,但是发现简书不能空,所以记录点什么吧,那么就从Golang开始吧。。。。。

Golang函数

//go语言函数和我们大部分语言函数是相同的,但是也有其不同点
//1.定义方法(为什么要用函数,目的的重用代码)
func 函数名(参数列表){
    //执行的业务逻辑
    fmt.Pringln("hello world")
}
//2.函数的参数(函数参数和js有点相似)
func sum(num1 int,num2 int){
    fmt.Println(num1,num2)
}
//3.函数的参数(不定长传参数)
func sum1(args ... int){
    //这里的args可以任意名字,其字符的类型是切片,所以可以通过for循环获取每一个值
    for i :=0;i<len(args);i++{
    args[i]
  //
}
//4.函数返回值
fun sum2(num1 int, num2 int) (int,int){
    sum := num1 + num2
    sub  := num1 - num2
    return sum,sub
}
//或则你偷懒可以这样做
fun sum2(num1 int, num2 int) (sum int, sub int){
    sum := num1 + num2
    sub  := num1 - num2
}
//注意go语言如果有返回值而你没有定义返回参数的列表则会报错
函数的使用
func main(){
  //接收函数的参数,如果返回多个你不想要那么多则可以用下划线忽略
  result,_ = sum2(10,9)
}
 //5.函数也是一种数据类型因此可以作为参数传递和把值赋给变量
1.赋值给变量,我们这里还是能sum2为公用的函数
func main(){
    //这里有个小注意事项,{}必须要留一个和main函数同在一行否则会报错
//1.把函数赋值给变量
    test1 := sum
    test1(10,9) //这里同样和sum()这种方式调用是一样的
//2.把函数当做参数传递给另外一个函数
    func sum3(func (int,int) int,n3 int,n4 int){
    //这样执行相当于是用了sum2()方法来执行
     func(n3,n4)
}
    sum3(sum2,10,9)
}
//6.包的导入
//在一个项目中有成千上万个功能,
//如果都写在main函数中,那可想而知找代码是多么的费力,
//同时多人协作开发也变慢,
//因此我们需要用到导入外部别人写的文件来给我主函数来调用,
//在php中导入另外的一个文件用include或require来实现,go中关键字是import

//1.导入外部文件
import(
      "ultia/ultia"   //这里路径是从src中开始即配置时候的gopath,最后就是package 包名
)
func main(){
  ultia.函数或者变量
}
//7.init函数
//init函数有点类似其它语言的对象中的构造方法
func init(){
    fmt.Println(“我是init函数”)// 这个函数会在执行main前执行调用,用来做初始化工作
}
//8.匿名函数所谓匿名函数就是没有名字的函数
funcdemo = func (n1 int,n2 int){
      //业务逻辑
}
funcdemo(10,9) //这样就实现了调用匿名函数
//9.闭包函数(累加器)
func   AddUp() func (int) int{
    n:=10
    return func(x int) int{
    n = n+ x
    return n
}
}
//10.最后就是递归函数了,不多说了,递归就是自己调用自己,
//但是切记要有 一个结束的条件否则就成了死循环了

小结:关于函数其实也挺多的,但是实际的场景把主要的掌握开发是没有问题的了

本文来自:简书

感谢作者:江世文

查看原文:Golang的函数

入群交流(该群和以上内容无关):Go中文网 QQ交流群:731990104 或 加微信入微信群:274768166 备注:入群; 公众号:Go语言中文网

87 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传