码迷,mamicode.com
首页 > 其他好文 > 详细

GO基础之函数

时间:2019-10-31 00:22:43      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:message   class   bsp   关键字   cfs   自定义   定义类   ==   ESS   

一、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基础之函数

标签:message   class   bsp   关键字   cfs   自定义   定义类   ==   ESS   

原文地址:https://www.cnblogs.com/jalja/p/11768868.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!