美文网首页
go语言实战阅读笔记

go语言实战阅读笔记

作者: 蛐蛐儿阳 | 来源:发表于2020-04-28 21:20 被阅读0次

我只把值得记录的写一下。

1,

_ "github.com..."  的方式导入包, 不是忽略包, 也不是其他类要用这个包。我原来理解错误。 
这句话的意思是让编译器接受包导入, 并执行包里面所有文件的init函数。

我测试了一下, 他把引入包的所有init 函数都执行了一遍, 顺序我测试的结果是按字母排序的

2,

在 Go 语言中,所有变量都被初始化为其零值。对于数值类型,
零值是 0;对于字符串类型, 零值是空字符串;对于布尔类型,
零值是 false;对于指针,零值是 nil。

其他都懂, 但nil, 是空指针的意思。

3,
golang中map和切片的区别:

切片时指针类型,数组是值类型
数组的长度是固定的,而切片不是(切片是动态的数组)
切片比数组多一个属性:容量(cap)
切片的底层是数组

4,

在 Go 语言中,如果 main 函数返回,整个程序也就终止了。
Go 程序终止时,还会关闭所有 之前启动且还在运行的 goroutine。
写并发程序的时候,最佳做法是,在 main 函数返回前,
清理 并终止所有之前启动的 goroutine。
编写启动和终止时的状态都很清晰的程序,有助减少 bug,防 止资源异常。

这个我恰好尝试过, 不管go func 有没有执行完, 只要main有输出,
整个进程结束, 解决方法是书中的waitGroup. 用法参考网址
https://studygolang.com/articles/12972?fr=sidebar

func main() {
    wg := sync.WaitGroup{}
    wg.Add(100)
    for i := 0; i < 100; i++ {
        go func(i int) {
            fmt.Println(i)
            wg.Done()
        }(i)
    }
    wg.Wait()
}

书指不定哪年的,WaitGroup方法已改成包了。看下面例子。哦,没改,我看代码不仔细。
var waitGroup sync.WaitGroup
他这样声明了一下。

func main() {
    wg := sync.WaitGroup{}
    wg.Add(100)
    for i := 0; i < 100; i++ {
        // 输出一个数字100次 , 为使用go, 搞了匿名函数
        go func(i int) {
            fmt.Println(i)
            wg.Done()
        }(i)
    }

    for i := 0; i<100; i++ {
        fmt.Printf("我在前面" + strconv.Itoa(i) + "\n")
    }
    wg.Wait()
    for i := 0; i<100; i++ {
        fmt.Printf("我在后面" + strconv.Itoa(i) + "\n")
    }

}

wg.Wait() 前面的代码,会轮回执行, 执行完后,才会一次性执行wg.Wait后面的代码。

相关文章

  • go学习计划 2018-07-13

    go语言入门及实战 go web开发 go源码及项目阅读

  • Golang Context

    参考Go语言实战笔记(二十)| Go ContextGolang context初探 一、WaitGroup 这是...

  • Go 语言极速入门

    本系列文章主要是记录《Go 语言实战》和《Google 资深工程师深度讲解 Go 语言》的学习笔记。 Go 语言极...

  • Go语言实战笔记

    Go语言实战笔记(二)| Go开发工具https://www.flysnow.org/2017/03/08/go-...

  • go语言实战阅读笔记

    我只把值得记录的写一下。 1, 我测试了一下, 他把引入包的所有init 函数都执行了一遍, 顺序我测试的结果是按...

  • Go语言实战笔记(八)| Go 函数方法

    《Go语言实战》读书笔记,未完待续,欢迎扫码关注公众号flysnow_org,第一时间看后续笔记。 在Go语言中,...

  • Go语言实战笔记(七)| Go 类型

    《Go语言实战》读书笔记,未完待续,欢迎扫码关注公众号flysnow_org,第一时间看后续笔记。 Go 语言是一...

  • 《Go语言实战》笔记(一)|Go包管理

    申金鑫 17101223365 转载自知乎专栏 Go语言实战笔记 【嵌牛导读】:本教程详细介绍了Go语言的一些包的...

  • 内存泄露

    内存泄露 实战 实战Go内存泄露 - Go语言实战 - SegmentFault 思否 总结 pprof工具 使用...

  • 手撸golang GO与微服务 grpc

    手撸golang GO与微服务 grpc 缘起 最近阅读 [Go微服务实战] (刘金亮, 2021.1)本系列笔记...

网友评论

      本文标题:go语言实战阅读笔记

      本文链接:https://www.haomeiwen.com/subject/flabwhtx.html