设为首页 加入收藏

TOP

Go基础(2)(二)
2019-03-26 14:08:28 】 浏览:210
Tags:基础
urn
a + b } func operator(op op_func, a, b int) int { return op(a, b) } func calc(a, b int) (sum int, avg int) { sum = a + b avg = (a + b) / 2 return } func main() { c := add sum := c(1, 2) fmt.Println(sum) var d op_func = add result := operator(d, 100, 200) fmt.Println(result) sum, avg := calc(2, 6) fmt.Println(sum, avg) }

分析:

1.go的函数可以赋值给一个变量,并且作为参数传递

2.go的函数可以多返回值,并且可以在函数开头给返回值赋值,在return处省略

 

demo7:

package main

import "fmt"

func add(a int, arg ...int) int {
    var sum int = a
    for i := 0; i < len(arg); i++ {
        sum += arg[i]
    }
    return sum
}

func concat(a string, arg ...string) (result string) {
    result = a
    for i := 0; i < len(arg); i++ {
        result += arg[i]
    }
    return
}

func main() {
    sum := add(1, 2, 3, 4, 5)
    fmt.Println(sum)

    result := concat("a", "b", "c", "d", "e")
    fmt.Println(result)
}

分析:

1.函数支持不确定参数

 

demo8:

package main

import "fmt"

func main() {
    var i int = 0
    defer fmt.Println(i)
    defer fmt.Println(1)
    i = 10
    fmt.Println(i)
}

/*输出:
10
1
0
*/

分析:

1.defer语句的理解

2.defer...i...这一句先被放在栈底,然后在它上面放入defer...1...,最后再把函数本身放上。所以执行的时候,先输出10,然后是1,最后是0

3.defer的实际用途:释放资源,比如defer file.close():无论对文件做什么操作或者多么复杂的逻辑判断,最终都会释放资源

 

demo9:

package main

import "fmt"

func main() {
    result := func(a int, b int) int {
        return a + b
    }
    fmt.Println(result(1, 2))
}

分析:

1.匿名函数的简单使用

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Go指南 - 笔记 下一篇windows从0开始学golang

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目