GO基础之函数
Posted jalja
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GO基础之函数相关的知识,希望对你有一定的参考价值。
一、Go语言函数的格式
函数构成了代码执行的逻辑结构,在Go语言中,函数的基本组成为:关键字 func、函数名、参数列表、返回值、函数体和返回语句,每一个程序都包含很多的函数,函数是基本的代码块。
// 没有返回值的函数 func log(message string) { } // 有一个返回值的函数 func add(a , b int) int { return var1 } // 有多个返回值的函数 func power(name string) (int, bool) { return var1,var2 } // 给返回值 命名 func add(a, b int) (c int) { c = a + b return c }
多返回值函数的使用
func main() { a := 0 b := 0 a, b = addAndMultiply(10, 20) fmt.Println("a=", a) fmt.Println("b=", b) } func addAndMultiply(a, b int) (int, int) { return a + b, a * b }
二、函数作为参数
package main import "fmt" import "strings" func main() { str := strToCase("ABDCFSDFE", processLetter) fmt.Println(str) } //将函数作为参数 func strToCase(str string, myfunc func(string) string) string { return myfunc(str) } //字符串奇偶交替 func processLetter(str string) (result string) { for i, value := range str { if i%2 == 0 { result += strings.ToUpper(string(value)) } else { result += strings.ToLower(string(value)) } } return result }
使用 type自定义类型
package main import "fmt" import "strings" func main() { str := strToCase("ABDCFSDFE", processLetter) fmt.Println(str) } //将函数作为参数(使用type定义的参数类型) func strToCase(str string, myfunc processLetterFunc) string { return myfunc(str) } //使用type 为processLetter() 函数定义类型 type processLetterFunc func(string) string //字符串奇偶交替 func processLetter(str string) (result string) { for i, value := range str { if i%2 == 0 { result += strings.ToUpper(string(value)) } else { result += strings.ToLower(string(value)) } } return result }
二、变量的作用域
1、局部变量与全局变量同名时,局部变量优先
//全局变量 var num int = 100 var num2 int = 200 func main() { num, num2 := 1, 2 fmt.Println("num=", num) // num=1 fmt.Println("num2=", num2)// num2=2 }
以上是关于GO基础之函数的主要内容,如果未能解决你的问题,请参考以下文章