下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 21 | 构建可复用的模块(包)
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

Go语言从入门到实战

共55讲 · 55课时,约700分钟
6092
免费
01 | Go语言课程介绍
免费
02 | 内容综述
免费
03 | Go语言简介:历史背景、发...
免费
04 | 编写第一个Go程序
免费
05 | 变量、常量以及与其他语言...
06 | 数据类型
07 | 运算符
08 | 条件和循环
09 | 数组和切片
10 | Map声明、元素访问及遍历
11 | Map与工厂模式,在Go语言...
12 | 字符串
13 | Go语言的函数
14 | 可变参数和defer
15 | 行为的定义和实现
16 | Go语言的相关接口
17 | 扩展与复用
18 | 不一样的接口类型,一样的...
19 | 编写好的错误处理
20 | panic和recover
21 | 构建可复用的模块(包)
22 | 依赖管理
23 | 协程机制
24 | 共享内存并发机制
25 | CSP并发机制
26 | 多路选择和超时
27 | channel的关闭和广播
28 | 任务的取消
29 | Context与任务取消
30 | 只运行一次
31 | 仅需任意任务完成
32 | 所有任务完成
33 | 对象池
34 | sync.pool对象缓存
35 | 单元测试
36 | Benchmark
37 | BDD
38 | 反射编程
39 | 万能程序
40 | 不安全编程
41 | 实现pipe-filter framew...
42 | 实现micro-kernel frame...
43 | 内置JSON解析
44 | easyjson
45 | HTTP服务
46 | 构建RESTful服务
47 | 性能分析工具
48 | 性能调优示例
49 | 别让性能被锁住
50 | GC友好的代码
51 | 高效字符串连接
52 | 面向错误的设计
53 | 面向恢复的设计
54 | Chaos Engineering
55 | 结束语
本节摘要
展开

精选留言(13)

  • 2019-03-16
    go get -u github.com/easierway/concurrent_map
    要这样,不能带后缀
    7
  • 2019-03-16
    $ go get -u github.com/easierway/concurrent_map.git
    package github.com/easierway/concurrent_map.git: invalid version control suffix in github.com/ path
    下载不了,
    1
    2
  • 2019-09-06
    大师,Go的模块什么时候补录一个视频呀,这个没有讲哦!

    作者回复: 嗯,希望有机会和平台再次合作,为大家补录一些Go的更新内容。

    1
    1
  • 2019-04-04
    我用的GoLand编辑器,设置了gopath,但是不知道为啥import只能用"../series",无法识别"ch15/series"
    2
    1
  • 2019-03-18
    package和文件中的init方法一般做哪些事情?
    1
  • 2019-08-26
    [ERROR] Update failed for ch15/series: Cannot detect VCS
    [ERROR] Failed to do initial checkout of config: Cannot detect VCS


    有这种错误的给个1,vscode
    展开
  • 2019-07-05
    golang中包由path与name两部分构建,导入时import的是package path,如'import "ch15/series"',其中ch15/series为$GOPATH/src/ch15/series目录,在使用时'series.Square(5)',其中的series为包名。
    另外,从import可以给包取别名看到,其实包名叫什么没有啥意义,如:

    import x "ch15/series"
    func TestPackage(t *testing.T){
      t.Log(x.Square(5))
    }

    其中 $GOPATH/src/ch15/series/yyy_test.go中package zzz的yyy与zzz叫啥都成。但是从代码可读性上与使用方便上,尽量:包的路径名与包名尽量保持一致,而且能表达这个包是做什么的,也就是zzz定义为series;至于yyy名称则尽量能体现出这个文件中都定义了一些什么功能。
    展开

    作者回复: 赞。

  • 2019-07-05
    Atom每次打开go-plus都在更新库,从golang.org或github.com更新插件,一个是网络本来就不好,我在运行测试代码,Output总被"go get -u"占据,怎么能禁止它更新包?
    ![](http://wimgss.oss-cn-hangzhou.aliyuncs.com/2019-07-05-145406.png)

    作者回复: 一般是你的go-plus的依赖一直没有完全安装成功,你可以在网络上找到golang.org的包更新解决方案。

  • 2019-04-27
    老师您好,是否有关于比包的讲解?

    作者回复: 是不是“闭包”?你看看函数那节里有没有你想要的 😊

  • 2019-04-19
    其实我在上一个问题已经给出了GOPATH了
    ```
    root@ubuntu:/mnt/goProjec/src/ch13/client# go env |grep PATH
    GOPATH="/mnt/goProject"
    ```
    展开
  • 2019-04-16
    有这个路径
    root@ubuntu:/mnt/goProject/src/ch13# tree
    .
    ├── client
    │   └── package_test.go
    └── series
        └── series_file.go
    展开

    作者回复: 这种情况,只要在GOPATH里加入/mnt/goProject就没有问题了

  • 2019-04-15
    日志copy错了,其实没有多src路径
    ```
    root@ubuntu:/mnt/goProjec/src/ch13/client# go test -v package_test.go
    # command-line-arguments
    package_test.go:7:5: cannot find package "ch13/series" in any of:
        /usr/local/go/src/ch13/series (from $GOROOT)
        /mnt/goProject/src/ch13/series (from $GOPATH)
    FAIL    command-line-arguments [setup failed]
    root@ubuntu:/mnt/goProjec/src/ch13/client# go env |grep PATH
    GOPATH="/mnt/goProject"
    root@ubuntu:/mnt/goProjec/src/ch13/client# cat package_test.go |grep "ch13"
        "ch13/series"
    root@ubuntu:/mnt/goProjec/src/ch13/client#
    ```
    展开

    作者回复: 有ch13/series这个路径吗?

  • 2019-04-14
    我用linux也是无法识别"ch13/series"
    GOPATH
    ```
    GOPATH="/mnt/goProject/src"
    ```
    报错
    ```
    root@ubuntu:/mnt/goProjec/src/ch13/client# go test -v package_test.go
    # command-line-arguments
    package_test.go:5:5: cannot find package "ch13/series" in any of:
        /usr/local/go/src/ch13/series (from $GOROOT)
        /mnt/goProject/src/src/ch13/series (from $GOPATH)
    FAIL    command-line-arguments [setup failed]
    ```
    展开

    作者回复: 你看下路径是不是多了个src的问题

    1