温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Go语言基础函数有什么作用

发布时间:2021-06-18 09:22:26 来源:亿速云 阅读:151 作者:chen 栏目:编程语言

本篇内容主要讲解“Go语言基础函数有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go语言基础函数有什么作用”吧!

为什么需要函数
函数,在所有编程语言中都叫函数,Java,PHP,Python,JS等,统一都叫函数。

函数的作用
一般是这样形容的:函数可以将重复的,或者特定功能的,封装成一个方便调用的东西。

注:在Go中,函数是支持闭包的。

在没有使用函数时
代码

package main  import "fmt"  func main() {     //模拟一个打开文件,写入一行内容进入文件,在关闭文件的功能     var file_name = "a.txt" //文件名     var w_content = "爱我中华"  //写入的内容     fmt.Println(fmt.Sprintf("打开 %s 文件",file_name))     fmt.Println(fmt.Sprintf("向 %s 文件写入了 %s ", file_name, w_content))     fmt.Println(fmt.Sprintf("关闭 %s 文件",file_name))      //如果再再向其他文件写入内容,还需要复制一次      var file_name2 = "b.txt" //文件名     var w_content2 = "中国威武"  //写入的内容     fmt.Println(fmt.Sprintf("打开 %s 文件",file_name2))     fmt.Println(fmt.Sprintf("向 %s 文件写入了 %s ", file_name2, w_content2))     fmt.Println(fmt.Sprintf("关闭 %s 文件",file_name2)) }

使用函数后
将相同功能封装成函数。

package main  import "fmt"  func w_file(filename string, w_content string) {     fmt.Println(fmt.Sprintf("打开 %s 文件", filename))     fmt.Println(fmt.Sprintf("向 %s 文件写入了 %s ", filename, w_content))     fmt.Println(fmt.Sprintf("关闭 %s 文件", filename)) } func main() {     //将相同功能封装成函数     w_file("a.txt", "爱我中华")     w_file("b.txt", "中国威武") }

上述代码执行的结果都如下

Go语言基础函数有什么作用

ps:但是可以明显看到,使用函数将相同功能抽出来,代码会变的简单,整洁。

函数使用
函数名命名规则
函数命名尽量以驼峰命名,例如:getName,connectData等。

语法
在Go中,定义函数语言用到func关键字。

func 函数名([参数1 参数类型1,参数2 参数类型2,...]) [(返回值 返回值类型,...)]{     逻辑代码 } //中括号表示可选参数

无参数,无返回值

package main  import "fmt"  func say1() {     fmt.Println("我终于会说话了...") }

有参数,无返回值

func say2(c string) {     fmt.Println("我终于会说" + c + "了") }

有或者无参数,有返回值

func say3(c string) (string) {     fmt.Println("我终于会说" + c + "了")     return "哦耶" }

main函数

func main() {     say1()     say2("你好哇")     result := say3("你好哇")     fmt.Printf(result) }

结果

Go语言基础函数有什么作用

package main  import "fmt"  func say() string{     fmt.Println("我终于会说话了...")     return "" }  func main() {     //函数名+括号调用函数     say() //结果:我终于会说话了... }

注:如果函数有返回值,可以不接收。

函数参数特性
在Go中,如果函数参数都是统一类型,可以这样写。

//arg1, arg2, arg3, arg4参数类型都是string func say(arg1, arg2, arg3, arg4 string) {   fmt.Println("我终于会说话了...") }  //arg1,arg2参数是int类型,arg4,arg4是string类型, func say(arg1, arg2, int, arg3, arg4 string) {   //表示arg1, arg2, arg3, arg4参数类型都是string   fmt.Println("我终于会说话了...") }

大概意思就是,如果参数不写类型,会以后面碰到的类型为准。

函数的...参数
...参数,也叫可变长参数,有点像Python中的*args。

功能是当不知道接收多少个参数时,接收多的参数会放在...中。

...参数需要放在最后面。

代码

package main  import "fmt"  func say(name string, content ...string) {     fmt.Println(content)        //结果:[666 双击 ok 哦耶]   fmt.Printf("%T\n", content) //结果:[]string,是切片类型   fmt.Println("我是"+name, "我说了:")   //循环切片   for _, v := range content {     fmt.Println(v)   }  }  func main() {   //函数名+括号调用函数   say("张三", "666", "双击", "ok", "哦耶") //结果:我终于会说话了... }

结果如图所示

Go语言基础函数有什么作用

注:参数是...类型的,他的值是一个切片类型。

函数的返回值
返回值是一个的

package main  import "fmt"  //返回值是一个 func say1() string {   return "ok" }

返回值是多个的,需要用括号括起来

//返回值是多个的,需要用括号括起来 func say2() (int, string) {   return 1, "ok" }

返回值是命名的

//返回值是命名的,不管是多个返回值还是一个返回值,都需要括号 //如果是命名返回值,需要在逻辑代码中,将变量赋值 func say3() (a int, b string) {   //逻辑代码   a = 18   b = "666"   /*     直接return即可,不需要retrun a,b     return的默认就是 a 和 b     不用跟上述返回一样,返回具体值   */   return }

main函数

func main() {   s := say1()   fmt.Println(s)   a1, b1 := say2()   fmt.Println(a1, b1)   a2, b2 := say3()   fmt.Println(a2, b2) }

结果

Go语言基础函数有什么作用

到此,相信大家对“Go语言基础函数有什么作用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI